2

ファイル内で発生する可能性のある文字列を削除する必要があります。文字列には多くの行があります。Batch スクリプトを使用してこのアクションを実行できますか?

バッチで複数の行を持つ変数を持つことはできないと聞きましたか? 文字列は、Batch を使用して変数に読み込む別のファイルから取得されます。

次のコードは、ファイルの最初/最後の行のみを文字列に格納するようです?? 何がうまくいかないのですか?

Rem Read file and store all contents in string
Set replace=
Set target=
Set OUTFILE=res.txt
for /f "delims=" %%i in (myFile.txt) do set target=%target% %%i

echo %target%
Rem When I print target I only have one line not many lines?? Whats going wrong

Rem Remove the target string from myOtherFile.txt: this code is from http://stackoverflow.com/questions/5273937/how-to-replace-substrings-in-windows-batch-file
for /f "tokens=1,* delims=¶" %%A in ( '"type myOtherFile.txt"') do (
SET string=%%A
SET modified=!string:%target%=%replace%!

echo !modified! >> %OUTFILE%
)
4

2 に答える 2

4

これを試して:

@echo off &setlocal enabledelayedexpansion
for /f "delims=" %%i in (myFile.txt) do set "target=!target! %%i"
echo %target%

delayed expansionコード ブロック内では、常に変数値を持つ変数が必要です。

于 2013-04-30T03:09:46.220 に答える