に私は複数のサーバーにコピーしたファイルのバッチスクリプトを書いています。変数として.txt
ファイルからサーバー名を取り出し、それをサーバーに接続するために使用します。名前が変数になった後
は、私は再び実行している場合、スクリプトは次の使用可能なサーバー名を取るように、ファイルからこのエントリを削除し(別のファイルに保存)したいです。削除ラインは、バッチスクリプト
@echo off
:start
set /p servername=<server.txt
findstr /v "%servername%" server.txt > serverdone.txt
rem (Part of the script that copies the file, this is already working)
GOTO start
スクリプトはserver.txt
の最初の行を取ることができるであると仮定として%servername%
変数に代入します、しかし、findstr
ラインが動作していないよう:これまでのところ、私はこれを書かれている
。 serverdone.txt
ファイルは空のままであり、スクリプトはただserver.txt
ファイルの最初のサーバーを使用し続けます。私はこの質問をガイドとして使用しました:Delete certain lines in a txt file via a batch file。
なぜありません単純にファイル 'server.txt'を' for/F'ループで処理し、各行のコピー部分を実行しますか? – aschipfl
@aschipflあなたはFOR/F %% G IN(server.txt)を意味します。DO set/p servername =
Spypsyduck