[英]windows batch script: Remove all non pdf files in directory
我正在尝试编写一个批处理脚本,该脚本从目录中删除所有非 pdf 文件。 目录名称为 OUTPUT/
这是我得到的
FOR /f %%f IN (.\OUTPUT) DO
SET fileName=%%f
IF NOT "!fileName:~-3!"=="pdf" (
DEL !fileName!
)
尽管您的问题只是您没有在for
命令中使用正确的语法,但我还注意到了其他一些评论,我认为将其作为答案会更好。
最明显的是,您无缘无故地设置了一个变量,然后不得不在延迟扩展中使用它。
要像您一样这样做,它应该看起来更像这样:
@Echo Off
SetLocal DisableDelayedExpansion
For %%G In (Output\*) Do (
Set "fileName=%%G"
SetLocal EnableDelayedExpansion
If /I Not "!fileName:~-4!"==".pdf" (
Del /F "!fileName!"
)
EndLocal
)
循环标准:
@For %%G In (Output\\*)Do @If /I Not "%~xG"==".pdf" Del /F "%%G"
for /f
变体:
@For /F "Delims=" %%G In ('Dir /B/ADSL "Output" 2^>NUL^|FindStr /VILE ".pdf"')Do @Del /F "Output\\%%G"
或多行,如果你觉得更容易阅读:
@Echo Off For /F "Delims=" %%G In ( 'Dir /B/ADSL "Output" 2^>NUL^|FindStr /VILE ".pdf"' ) Do ( Del /F "Output\\%%G" )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.