搜索“ .exe”和“ .msi”的脚本

时间:2018-09-19 02:59:57

标签: batch-file

这是我的脚本: 我不需要搜索“ C:\ Program Files”和“ C:\ Windows”文件夹。如何跳过该目录?

InetSocketAddress hostAddress = new InetSocketAddress(NetworkingSettings.PORT);

我不需要搜索“ C:\ Program Files”和“ C:\ Windows”文件夹。如何跳过该目录?

1 个答案:

答案 0 :(得分:0)

要避免使用两个固定的文件夹名称,请在FOR / r语句之后添加:

set "d=%%a"
if /i not "!d:~0,17!"=="c:\program files\" if /i not "!d:~0,11!"=="c:\windows\" (

在FOR块的底部添加另一个结束符

)

不需要的文件名将由FOR生成,但不会被处理。

作为制作排除目录列表变量的示例,将FOR行替换为:

set xd="c:\program files\" c:\windows\ "c:\program files (x86)" %*
For /r "c:\" %%a in ("*.exe" "*.msi") DO (
set "d=%%a"
for %%x in (%xd%) do if not "!d:%%~x=!"=="!d!" set "d="
if exist d (

在FOR块的底部添加另一个结束符

)

%xd%列表中目录中的文件将不被处理。调用方还可以指定其他目录,这些目录不作为命令行参数处理,例如:

myscript "c:\users\all users\" c:\ProgramData\