【发布时间】:2012-06-12 00:26:42
【问题描述】:
问题是关于实际的 DOS 批处理文件,而不是 Windows cmd.exe 脚本文件。
如何在for 循环中排除具有特定扩展名的文件?
@echo off
set myExtension=
for /r C:\ %%i in (*) do (
::notDesirableExtension
if myExtension != gif or jpg
...
echo myFiles >> F:\list.txt
)
【问题讨论】:
-
您的问题是关于实际的 DOS (
command.com) 批处理文件,还是关于 Windows 命令处理器 (cmd.exe) 脚本文件?语法和功能方面存在重大差异,并且差异很重要。 (您的问题标题同时显示Windows和DOS。) -
我的问题是关于 DOS (command.com) 批处理文件。
-
我进行了编辑以表明这一点,并更清楚地提出问题。仅供参考,我认为在 DOS 下对于 cmets 不支持
::; IIRC,当时只有REM。此外,this question 可能会有所帮助;这是关于删除除具有特定扩展名之外的所有内容,但想法是一样的。 -
感谢肯,但上面的链接没有帮助。我正在尝试将循环中的 myExtension 变量设置为扩展字符串,然后打印文件名减去不需要的扩展名。
-
实际上,它应该(我写了接受的答案,并且知道它的作用)。它在哪些方面没有帮助?您可以在执行
echo之前使用多个attrib命令,并且您还没有指出myFiles应该包含什么。我不清楚你想在这里做什么。 (循环不是必需的。隐藏不需要的扩展名,执行dir > F:\list.txt,然后重置属性以取消隐藏文件。)