0

私のバッチがパスの例でスペースを処理する方法:

C:\Documents and Settings\K\Desktop\New Folder

@echo off
pushd "%~dp0"
IF EXIST "%1" GOTO DECODE_INDIVIDUAL

:DECODE_MULTIPLE
xcopy /s /c /d /e /h /i /r /y "%cd%\encoded" "%cd%\decoded\"
dir "%cd%\decoded\*.php"  /A:-D /B /O:N /S >> "%cd%\filelist.txt"

@echo on
for /F %%e in ("%cd%\filelist.txt") do ( copy "%%e" "bin\file.php" && "php.exe" "bin\decoder.php" "bin\file.php" && move "bin\file.php" "%%e" && del "bin\file.php")
del /Q "%cd%\filelist.txt"
GOTO DECODE_END

:DECODE_INDIVIDUAL
@echo on
"php.exe" "%cd%\bin\decoder.php" "%1"

:DECODE_END
4

2 に答える 2

1
for /F "USEBACKQ delims=" %%e in .....
于 2013-03-19T22:50:18.990 に答える
0

パスまたはファイル名にスペースが含まれている場合は、区切り文字を何も設定しないでください。

for /F "usebackqdelims=" %%e in ("%cd%\filelist.txt") do ( copy "%%~e" "bin\file.php" && "php.exe" "bin\decoder.php" "bin\file.php" && move "bin\file.php" "%%~e" && del "bin\file.php")

%%~zよりも適切に使用する必要があります。これにより%%z~追加の二重引用符が削除されます。

Peter Wrightの回答に従って編集。

于 2013-03-19T20:49:53.507 に答える