【发布时间】:2018-02-28 21:57:40
【问题描述】:
我要做的是将 NOMEDIA 文件复制到所有名为 EXTRAS 的子文件夹以及它们的所有子文件夹中,但没有其他文件夹比那些。
例如,这些是 NOMEDIA 文件应该(不)被复制的地方:
**FALSE** ===> F:\Movies\1234\
**TRUE** ====> F:\Movies\1234\Extras\
**TRUE** ====> F:\Movies\1234\Extras\1\
**TRUE** ====> F:\Movies\1234\Extras\2\
**FALSE** ===> F:\Movies\5678\
**TRUE** ====> F:\Movies\5678\Extras\
此代码将仅将 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 的帮助! :-)
【问题讨论】:
-
for /F "delims=" %i in ('dir /S /B /A:D "DRIVE:PATH" ^| findstr "\\Extras\\"') do @copy "DRIVE:PATH\.nomedia" "%i" -
在批处理文件中,将
%i替换为%%i! -
@Aacini 有效,除了一件事:它不会将文件复制到实际的 Extras 文件夹中,只有子文件夹。我如何让它也复制到那里?谢谢!
-
将
findstr "\\Extras\\"更改为findstr "\\Extras"
标签: file batch-file recursion copy directory