批处理命令在dir命令后忽略特定文件?

时间:2015-01-04 19:48:57

标签: batch-file

如何设置批处理脚本以忽略某些文件?喜欢,不过滤,但确切的文件。 像

dir /b *.zip

文件列表中的结果

file1.zip
file2.zip
file3.zip
file4.zip
file5.zip

我想忽略特定文件

file3.zip
file4.zip

最后得到文件列表结果

file1.zip
file2.zip
file5.zip

我该怎么做?

2 个答案:

答案 0 :(得分:0)

dir /b *.zip|findstr /v /i /g:"filecontainingexcludednamesonetoaline.txt"

应该充分地处理这项任务。


提供更多信息(最好在开始时提供相关信息以防止无休止的修订周期)

...
dir /b *.zip|findstr /x /v /i /g:"~f0"
....
goto :eof
---- this info at end-of-file. just plain text
---- files-to-exclude-from-listing
---- these last 3 lines are just comments playing no part in the script
exclude me.zip
and_me.zip
dont_show me.zip

答案 1 :(得分:0)

与Magoo的答案几乎相同,但没有额外的文件,并且还添加了/ L选项以强制进行文字匹配:

dir /b *.zip|findstr /vilx /c:"file1.zip" /c:"file2.zip"

这个问题有点矫枉过正,但您也可以使用我的JREN.BAT utility。它主要用于重命名文件,但它确实有一个列出文件的选项。此实用程序的优点是它允许您指定要匹配的非常精确的正则表达式术语,以及指定要排除的文件。

在这种情况下,我使用/ FM和/ FX选项指定具有正常Windows通配符规则的掩码,而不是使用正则表达式。

jrepl "^" "" /list /fm *.zip /fx "file1.zip|file2.zip"

如果你有复杂的匹配规则,那么/ RFM和/ RFX可以用来指定正则表达式掩码。