繁体   English   中英

windows批处理脚本:删除目录中的所有非pdf文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM