如何将文件递归复制到具有特定名称的所有文件夹中(首选批处理文件)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将文件递归复制到具有特定名称的所有文件夹中(首选批处理文件)相关的知识,希望对你有一定的参考价值。
我想要做的是将NOMEDIA文件复制到所有名为EXTRAS的子文件夹以及所有子文件夹,但没有其他文件夹。
例如,这些是应该(不)复制NOMEDIA文件的地方:
**FALSE** ===> F:Movies1234
**TRUE** ====> F:Movies1234Extras
**TRUE** ====> F:Movies1234Extras1
**TRUE** ====> F:Movies1234Extras2
**FALSE** ===> F:Movies5678
**TRUE** ====> F:Movies5678Extras
此代码仅将NOMEDIA文件复制到EXTRAS文件夹中,但不会复制其子文件夹,并且还会在所有目录和子目录中创建名为“Extras”的新文件:
for /r "DRIVE:PATH" %i in (Extras.) do @copy "DRIVE:PATH.nomedia" "%i"
这会将NOMEDIA文件复制到所有目录和子目录中。
for /r "DRIVE:PATH" %i in (.) do @copy "DRIVE:PATH.nomedia" "%i"
非常感谢任何帮助,谢谢。
编辑:
这是从@Magoo's
解决方案起作用的代码:
for /r "DRIVE:PATH" %i in (.) do echo "%i"|find /i "extras" >nul&if not errorlevel 1 copy "DRIVE:PATH.nomedia" "%i"
也感谢@Aacini
和@aschipfl
的帮助! :-)
答案
.... do echo "%i"|find /i "extras" >nul&if not errorlevel 1 copy....
这回应了发现在find
中的每个路径名,extras
试图在/i
不区分大小写的模式中找到字符串find
。 >nul
的输出受到find
的抑制。如果发现字符串,errorlevel
会将0
设置为1
,否则就会设置if errorlevel
,这样你就可以使用原始的errorlevel
语法(如果qazxswpoi是n或大于n,则“if errorlevel n”将为真)并且不使用检测errorlevel = 0(即找到字符串)。
以上是关于如何将文件递归复制到具有特定名称的所有文件夹中(首选批处理文件)的主要内容,如果未能解决你的问题,请参考以下文章