2015-01-04 184 views
0

如何设置批处理脚本忽略某些文件?像,不是过滤器,但确切的文件。 像批处理命令忽略dir命令后的特定文件?

dir /b *.zip 

结果在文件列表中

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

我想忽略的特定文件

file3.zip 
file4.zip 

并与文件列表结果

file1.zip 
file2.zip 
file5.zip 
结束

我该怎么做?

+0

检查这篇文章:http://technet.microsoft.com/en-us/library/bb490905.aspx –

+0

我似乎无法找到我寻找那个文章。 :( – Loismustdie555

回答

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 
+0

这工作完全脱线。只有一个问题,就是批处理脚本我工作的目的是在一个单一的文件公布。是否有任何其他方式做到这一点? – Loismustdie555

+0

您应该添加'/ L'选项强制将搜索条件解释为字符串文字,如果没有它,FINDSTR将看到file1.txt中的点,并将其视为正则表达式通配符,因此所有搜索条件都被视为正则表达式。 – dbenham

0

几乎一样脱线的答案,但没有额外的文件,并与添加/ L选项强制文字比赛:

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

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

在这种情况下,我使用/ FM和/外汇期权与正常的Windows通配符规则,而不是使用正则表达式指定口罩。

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

如果您有复杂的匹配规则,那么/ RFM和/ RFX可以用来代替指定正则表达式的面具。

+0

工作正常。 。 谢谢你们俩。 :) – Loismustdie555