以下のタスクに使用できるバッチファイルを作成しようとしています - 特定のテキストファイルを検索し、その中にテキスト行を追加する指定された行テキストファイルを検索してバッチファイルで行を追加する
dir /s /a /b "%SystemDrive%\config*.ini" >> %userprofile%\temp.txt
for /F "tokens=* delims=," %%G IN (%userprofile%\temp.txt) DO (echo "%%G" >> %userprofile%\temp2.txt)
for /F "tokens=* delims=," %%G IN (%userprofile%\temp2.txt) DO (
SETLOCAL ENABLEDELAYEDEXPANSION
cd %%~dG%%~pG
set inputFile=%%~nG%%~xG
set outputFile=in.tmp
set _strInsert=TCPPortNumber=870
set _strFind=Random=No
FOR /F "usebackq delims=" %%A IN ("%inputFile%") DO (
Echo %%A | Find "%_strFind%" && ECHO %%A>>"%outputFile%" && ECHO %_strInsert%>>"%outputFile%"
IF [!errorlevel!] == [1] ECHO %%A>>"%outputFile%"
)
MOVE /Y "%outputFile%" "%inputFile%" && DEL /F /Q "%outputFile%"
はconfig*.ini
ファイル(複数可)を検索するとtemp.txt
に結果を書き込み:私は、次のアプローチを使用しようとしています。 temp.txt
- >temp2.txt
に各行のファイルパスにスペースがある場合の引用符の挿入。次に、の各ファイルパスに対して、TCPPortNumber=870
という行をRandom=No
の下に挿入しようとしています。私は "ハード"ファイルパスを使用する場合、このアプローチは動作しますが、ファイルパスをtemp2.txt
から読み取ると、エラー:The system cannot find the file specified
が返されます。 誰も助けることができますか? (それはendlocal
にマッチされていない限り)、それはスイッチではなく、従ってループ内、フレームを確立するため
なぜあなたが正常に移動した後にソースファイルを削除しますそれは(コードの最後の行で)?移動はソースファイルがもはやとはならないことを意味します... – aschipfl