0

次のバッチ スクリプトがあります。

インターネットからコピーしました。私の要件に従ってスクリプトを変更するのに助けが必要です。

@ECHO OFF
IF "%~1"=="" GOTO :EOF
SET "filename=%~1"
SET fcount=0
SET linenum=0
FOR /F "usebackq tokens=1-30 delims=|" %%a IN ("%filename%") DO ^
CALL :process "%%a" "%%b" "%%c" "%%d" "%%e" "%%f" "%%g" "%%h" "%%i" "%%j" "%%k" "%%l" "%%m" "%%n" "%%o" "%%p" "%%q" "%%r" "%%s" "%%t" "%%u" "%%v" "%%w" "%%x" "%%y" "%%z" "%%?" "%%_" "%%@" "%%\"
GOTO :EOF

:trim
SET "tmp=%~1"
:trimlead
IF NOT "%tmp:~0,1%"==" " GOTO :EOF
SET "tmp=%tmp:~1%"
GOTO trimlead

:process
SET /A linenum+=1
IF "%linenum%"=="1" GOTO picknames

SET ind=0
:display
IF "%fcount%"=="%ind%" (ECHO.&GOTO :EOF)
SET /A ind+=1
CALL :trim %1
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO !tmp!
ENDLOCAL
SHIFT
GOTO display

:picknames
IF %1=="" GOTO :EOF
CALL :trim %1
SET /a fcount+=1
echo %tmp%
SET "f%fcount%=%tmp%"
SHIFT
GOTO picknames

上記のバッチ スクリプトにパラメーターとして指定する次のフィード ファイルがあります。

aa"aaaaa|bbbbbbbb|cccccc
ddddddd|eeeeeeee|ffffff
ggggggg|hhhhhhhh|iiiiii
jjjjjjj|kkkkkkkk|llllll
mmmmmmm|nnnnnnnn|oooooo

フィード ファイルに二重引用符があることに注意してください。これにより、バッチ スクリプトを実行しようとするとスクリプトが壊れます。助けてください。他の特殊文字の取り扱いについてもご協力ください。

また、上記のスクリプトは、最初の行を他の行とは異なる方法で扱います。最初の行も他の行と同じように扱いたいです。助けてください

4

1 に答える 1