Batch file 批处理脚本变量访问
我正在编写一个小批量脚本,用于删除目录和子目录中每个pdf文件的第一页。问题是,我不知道如何使用filename变量Batch file 批处理脚本变量访问,batch-file,cmd,scripting,pdftk,Batch File,Cmd,Scripting,Pdftk,我正在编写一个小批量脚本,用于删除目录和子目录中每个pdf文件的第一页。问题是,我不知道如何使用filename变量 setlocal enabledelayedexpansion pause FOR /R %%i IN (*.pdf) DO ( set fileName=%%~nxi echo %fileName% cd /d %%i ren %%i test.pdf pdftk test.pd
setlocal enabledelayedexpansion
pause
FOR /R %%i IN (*.pdf) DO (
set fileName=%%~nxi
echo %fileName%
cd /d %%i
ren %%i test.pdf
pdftk test.pdf cat 2-end output %fileName%
rm test
cd D:\Daten
)
pause
此脚本的输出如下所示
set fileName=test.pdf
echo
cd \d D:\Daten\Scanned_but_not_ready\Bewerbung_CV\test.pdf
ren D:\Daten\Scanned_but_not_ready\Bewerbung_CV\test.pdf test.pdf
pdftk test.pdf cat 2-end output
rm test
cd D:\Daten
我已经用%%和single%尝试了我所知道的一切。现在我自己找到了一个解决方案。。。对于每个需要它的人
setlocal enabledelayedexpansion
pause
FOR /R %%i IN (*.pdf) DO (
echo %%~nxi
ren %%i test.pdf
pdftk %%~dpitest.pdf cat 2-end output %%~dpi%%~nxi
del %%~dpitest.pdf
cd D:\Daten
)
pause
您应该始终在可能包含空格的路径上使用双引号
%%~dpi%%~nxi
与%%~fi
相同,但是默认的%%i
应该已经包含for/r
的完整路径,但是对于批处理新手来说做得不错+1您最初的代码问题是延迟扩展问题。但是您很快意识到,您不需要将FOR
变量指定给环境变量。