LANネットワークコンピュータ用にチャットスタイルのシステムをバッチで作成しています。 ユーザ名の入力を確認したいのですが、入力が許可されていない場合、ユーザがこの行に入力した内容を確認するにはどうすればいいですか(set/p name2 =) 私はこのテストを試しましたファイルを読み込むことはできません。ユーザ入力がtxtファイルであることを確認します。バッチを使用します。
:startup
set "fail="
set "name2="
set /p "name2=Enter Your Username: "
cls
findstr /b /e /l /c:"%name2%" <"Users.twml" >nul || set fail=1
if defined fail (
goto nope
)
:yes
cls
echo yes, you can use that
echo >> Users.twml %name2%
pause
goto endoftest
:nope
cls
echo thats taken try again
ping locahost -n 3 >nul
goto startup
名前が付けられていなくても、問題は常に起こりません。 Users.twmlファイルが作成され、手動で入力した場合:はい。ユーザーが名前を選択した後に読み込まれる場所には、名前がファイルに保存されます。
私が欲しいのは、ユーザーが名前を選んだ場合、ユーザーがそのファイル内にあるかどうかをチェックします(はい)場合は、gotoスタートアップで再試行し、実行しない場合はファイルに書き込み、続行します。好ましくは後藤セクションのコマンドを使用して、私は行くために場所を指定することができます...ない
上記のコードブロックは、私は以下のようなものは、私が現在使用しているものである^^^
で助けを必要とするものであり、それだけで動作します名前確認。ここで
は、これは私があなたの視覚的なアイデアを与えるためにのために行くしようとしているものです名検証:startup
cls
echo Pick A UserName
echo 1-16 Character limit.
set /p name2=
if "!name2!" == "" goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if not "!name2:~16!" == "" goto over
REM continues on after name picked if matches above requirements with stuff below
echo >> Connected.twml [System] %computername%:%username% Has joined as: %name2%
echo >> Directory.twml [System] %name2% Has joined the chat.
goto chat
ずに働いている使用名選択のための私が現在持っているブロックです。 そして現在
:startup
cls
echo Pick A UserName
echo 1-16 Character limit.
set "fail="
set /p name2=
if "!name2!" == "" goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if "!name2!" == " " goto startup
if not "!name2:~16!" == "" goto over
REM all the above works, now lets try to check if its taken
findstr /b /e /l /c:"%name2%" <"Users.twml" >nul || set fail=1
if defined fail (
goto nope
)
REM continues on after name picked if matches above requirements with stuff below
echo >> Connected.twml [System] %computername%:%username% Has joined as: %name2%
echo >> Directory.twml [System] %name2% Has joined the chat.
echo >> Users.twml %name2%
goto chat
:nope
cls
echo thats taken try again
ping locahost -n 3 >nul
goto startup
これがあればusers.twmlの内部が見えるものでは動作しません:はい場合は正しく
username1
username2
username3
username4
走っ@@@@@@@@@@新編集@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
私はテキストファイルで%user2%、メインファイルで%name2%を使用していましたので、一緒に作業しても不思議ではありません。まだfindstrを理解していない...これは、あなたが低い睡眠と1amでコードの任意のフォームを書くことはありません:)
あなたの 'Users.twml'ファイルの例は、XMLに似たマークアップ言語を示唆しているので、それが賢明でしょう。 – Compo
ファイルの見た目を追加しました。バッチラインでファイルに追加されました。>>%twml%echo%user2% –