批处理循环排除文件名包含特定字符的文件

6

我有一个简单的批处理文件,它会循环遍历所有 *Test.htm 文件并将它们复制。其中一些文件会包含一个字符串,我不想复制它。

FOR /R "C:\" %%g IN (*Test.htm) DO  (
echo %%g
)

我希望得到伪代码:

@echo off
FOR /R "C:\" %%g IN (*Test.htm) DO ( 
   if %%g contains "Exclude" do nothing
else 
   copy...
)

你的意思是文件本身包含字符串还是文件名包含字符串? - Magoo
你确定你想要的是 *Test.htm 而不是 *\Test.htm 吗? - Endoro
1个回答

14

文件名:

@echo off

FOR /R "C:\" %%g IN (*Test.htm) DO ( 
   (Echo "%%g" | FIND /I "Exclude" 1>NUL) || (
       Copy "%%g"...
   )
)

关于文件内容:

@echo off

FOR /R "C:\" %%g IN (*Test.htm) DO ( 
   (Type "%%g" | FIND /I "Exclude" 1>NUL) || (
       Copy "%%g"...
   )
)

1 代表什么? - Reversed Engineer
@DaveBoltman 命令的标准流重定向到NULL的索引。您可以在维基百科自由百科全书上阅读更多信息:https://en.wikipedia.org/wiki/Standard_streams - ElektroStudios

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接