1

ここにテキストファイルがありますtxtfile.txt

line1
line2
add after this line
line4
etc
etc

add after this lineユーザーが入力した情報の後に行を追加できるバッチファイルを作成したい。無傷のままadd after this line

例:

enter info: asdf

ファイルは次のようになります

line1
line2
add after this line
asdf
line4
etc
etc

基本的なプロセスは、ファイルをコピーしてループし、行を見つけたら、その行を追加してから残りをループすることだと思います。私はそれを行う方法を知りたいです。

4

1 に答える 1

4
@ECHO OFF
SETLOCAL
SET /p info="enter info : "
:: read addafter line
(
FOR /f "delims=" %%i IN (poison1.txt) DO (
SET addafter=%%i
FOR /f "delims=" %%n IN (' findstr /n "^" txtfile.txt') DO (
SET line=%%n
SETLOCAL ENABLEDELAYEDEXPANSION
SET line=!line:*:=!
ECHO(!line!
IF "!line!"=="!addafter!" ECHO(%info%
ENDLOCAL
)
)
)>newfile.txt

FC newfile.txt txtfile.txt

GOTO :eof

poison1.txt1行が含まれている場所

"A line !of! ] many < & >var*ied %poison ^ char;ac(ters) | like "," a\nd+so=on"

txtfile.txt にはこの行が含まれています。

  • poison1.txtファイルから次の行を読み取りますaddafter
  • add-to-me ファイルの各行
    • 空行をキャッチするために行に番号を付ける
    • 数字と最初のコロンを削除 ( で追加FINDSTR)
    • 行をそのまま出力する
    • 行がターゲットに一致する場合、余分な行を出力します

終わり!

于 2013-04-10T07:30:08.393 に答える