我目前正在做一个小脚本,它应该是搜索目录中的特定关键字。我目前的代码如下。
dir /b /s *<keyword_1>* > results.txt
dir /b /s *<keyword_2>* >> results.txt
dir /b /s *<keyword_3>* >> results.txt
dir /b /s *<keyword_n>* >> results.txt
为了避免使用同一个命令来搜索N个额外的关键字 我想用一个循环来代替。由于我对批处理脚本很陌生,我已经发现for %%f在这种情况下可能会帮助我。大概会是这样的。
for %%f in (*keyword_1* *keyword_2* *keyword_3* *keyword_n*) do (
dir /b /s *<keyword_xy>* >> results.txt
)
我的问题是,现在我如何将循环中的命令 与相应的关键字连接起来?(首先是关键字1,然后是关键字2,以此类推...)?也许还有一种更简单的方法来完成这项工作:)
完全不需要任何 循环 的任务。
@Dir /B /S /A -D -S -L *keyword_1* *keyword_2* *keyword_3* *keyword_n* > results.txt
或必要时使用双引号。
@Dir /B /S /A -D -S -L "*keyword_1*" "*keyword_2*" "*keyword_3*" "*keyword_n*" > "results.txt"
我使用了额外的过滤器,只选择文件,而不是文件和目录,并排除带有系统属性的文件,以及那些是连接点的文件。要了解更多关于这些选项的信息,请打开命令提示符窗口,输入 dir /?
,按 进入 键,并阅读所提供的信息。
@Dir /B /S /A -D -S -L "*keyword_*" > "results.txt"
顺便说一句,即使你打算使用... For
循环,你还是会尽可能的减少它。
@(For %%I In (1 2 3 n) Do @Dir /B /S /A -D -S -L "*keyword_%%I*") > "results.txt"
如果你能提供一个更真实的搜索字符串的例子 我们可以提供一个更有针对性的解决方案。