使用 .bat 将具有指定名称的所有子文件夹复制到合并文件夹中
Copy all sub-folders with a specified name into a merged folder using .bat
我想复制名称为 "PHASE 1" 的所有子文件夹(包括这些文件夹的内容),并将它们的内容合并到另一个位置。
我当前目录中的示例文件:
Folder 1\PHASE 1\test1.pdf
Folder 2\PHASE 1\test2.pdf
Folder 3\PHASE 1\test3.pdf
我希望将这些复制到一个目录中,如下所示:
MASTER FOLDER\PHASE 1
>test1.pdf
>test2.pdf
>test3.pdf
我想创建一个循环来为第 2 阶段、第 3 阶段等重复此过程
这是我尝试过但没有成功的所有方法:
for /r "%cd%" %%x in ("PHASE 1") do copy /y "%%x" ""%cd%"\MASTER FOLDER"
for /f "delims=" %%A in ('dir /a:d /b /s "PHASE *"') do (
xcopy /y "%%~A" "MASTER FOLDER\%%~nxA\"
)
看看 for /?
你可能会看到:
(set) Specifies a set of one or more files. Wildcards may be used.
PHASE 1
是一个文件夹名称,它似乎是 (set)
的无效值。
而不是 for /r
,for /f
使用 dir
命令可以获得
匹配通配符模式的目录路径。
上面的代码使用dir
来获取带有/a:d
的目录,
使用 /s
和 returns 以 /b
.
的裸格式递归
delims=
的for /f
选项导致返回每条路径,
没有分裂成令牌。
xcopy
将每个匹配的目录路径复制到 MASTER FOLDER
目录中。
如果需要确保模式PHASE *
的通配符匹配数字,
然后 dir
可以通过管道传输到 findstr
以过滤返回的路径。
我想复制名称为 "PHASE 1" 的所有子文件夹(包括这些文件夹的内容),并将它们的内容合并到另一个位置。
我当前目录中的示例文件:
Folder 1\PHASE 1\test1.pdf
Folder 2\PHASE 1\test2.pdf
Folder 3\PHASE 1\test3.pdf
我希望将这些复制到一个目录中,如下所示:
MASTER FOLDER\PHASE 1
>test1.pdf
>test2.pdf
>test3.pdf
我想创建一个循环来为第 2 阶段、第 3 阶段等重复此过程
这是我尝试过但没有成功的所有方法:
for /r "%cd%" %%x in ("PHASE 1") do copy /y "%%x" ""%cd%"\MASTER FOLDER"
for /f "delims=" %%A in ('dir /a:d /b /s "PHASE *"') do (
xcopy /y "%%~A" "MASTER FOLDER\%%~nxA\"
)
看看 for /?
你可能会看到:
(set) Specifies a set of one or more files. Wildcards may be used.
PHASE 1
是一个文件夹名称,它似乎是 (set)
的无效值。
而不是 for /r
,for /f
使用 dir
命令可以获得
匹配通配符模式的目录路径。
上面的代码使用dir
来获取带有/a:d
的目录,
使用 /s
和 returns 以 /b
.
delims=
的for /f
选项导致返回每条路径,
没有分裂成令牌。
xcopy
将每个匹配的目录路径复制到 MASTER FOLDER
目录中。
如果需要确保模式PHASE *
的通配符匹配数字,
然后 dir
可以通过管道传输到 findstr
以过滤返回的路径。