【问题标题】:Batch deleting exact file extensions [duplicate]批量删除确切的文件扩展名[重复]
【发布时间】:2020-11-16 10:29:27
【问题描述】:

我在同一个文件夹中有 .blk 和 .blkx 文件,我试图只删除 .blk 文件。我尝试了在this post 上找到的示例,如del "\folder\*.blk" /s。我设法删除了所选文件,但是 .blkx 文件也被删除了(其他文件没有,所以我认为这两个文件的扩展名中都有 .blk 的问题)。

如何只选择 .blk 文件?

编辑:我不知道为什么这篇文章被标记为重复,但上面的置顶帖子并没有解决问题(我已经说过不工作了)

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    您必须在该驱动器上启用SFNs(短文件名),并且.blkx 扩展名映射到短8.3 文件名中的.blk。正因为如此,并且因为wildcards match both long and short names*.blk 返回.blkblkx 文件。要区分它们,您需要运行 for 循环,检查实际扩展名,然后分别删除每个 .blk

        for %%b in (*.blk) do @(if /I "%%~xb" == ".blk" echo del "%%~b")
    

    从上面删除echo 以实际删除.blk 文件。

    要递归到子目录(如del /s),请使用for /r 而不是for

    该命令被编写为在批处理文件中使用(根据问题标签)。要在命令提示符下运行它,请将双百分号 %%b 替换为单百分号 %b

    【讨论】:

    • 您应该使用if /I 不区分大小写...
    猜你喜欢
    • 2013-01-04
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    相关资源
    最近更新 更多