【问题标题】:Batch Remove all files without extensions from list从列表中批量删除所有没有扩展名的文件
【发布时间】:2016-03-19 18:59:08
【问题描述】:

我正在制作一个简单的程序来列出某个文件夹中的所有文件,并且我想删除所有没有扩展名的文件(从文本文件中或更有效的地方)。

这是我当前的代码:

dir /s/b *.* > E:/Project.sav 
for /f "Delims=" %%A in (E:/Project.sav) do (
 echo %%A
)

我得到了这样的混合文件:

C:\Users\User\Desktop\TEst\05f429069e65dwqewqeqweqeq0a3f294cc3128ab
C:\Users\User\Desktop\TEst\063bf0fui3ucinyh3ruincuiwhwu3gssssybwyrbweib
C:\Users\User\Desktop\TEst\hs_err_pid3080.log
C:\Users\User\Desktop\TEst\hs_err_pid5220.log

【问题讨论】:

    标签: list batch-file directory text-files


    【解决方案1】:

    如果你不需要中间文件,那么你只需要 DIR 命令:

    dir /s /b *.
    

    请注意,上面将包括目录名和文件名,就像您的原始代码一样。如果您只想要文件,则添加 /A-D 选项:

    dir /s /b /a-d *.
    

    如果您需要 E:/Project.sav 中的完整列表,则可以使用 FINDSTR 和正则表达式来过滤掉包含扩展名的条目:

    findstr /vr "\.[^\\]*$" "E:/Project.sav"
    

    【讨论】:

      【解决方案2】:
      if "%%~xA" neq ""  echo %%A
      

      应该做你想做的。

      如果“%%A中文件名的扩展名”不等于“”回显....

      【讨论】:

        猜你喜欢
        • 2013-01-04
        • 2012-01-28
        • 1970-01-01
        • 2013-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-13
        相关资源
        最近更新 更多