我需要复制一个匹配通配符的文件夹,例如FOLDER_ *。该文件夹将存在其他文件,因此我需要命令将其与其他所有文件隔离。此外,该命令需要以递归方式搜索目录,并仅返回与通配符匹配的FOLDER,其内容保持不变。然后它需要将其复制到另一个文件夹。有任何想法吗?我尝试了很多变种 - 这是我尝试过的最后一件事。
for /D /R %%f in (FOLDER_*) do xcopy %%f %~dp0\TestResults
答案 0 :(得分:0)
下一个代码段应该复制所有找到的FOLDER_*
文件夹,包括其子文件夹,但省略upfolder\
中upfolder\FOLDER_*
之类的所有父文件夹(但是可以对其进行改进以包含它,当然)。
for /F
循环dir /b /s /ad
(子文件夹的静态列表)而不是for /D /R
,因为选项/d /r
未被记录。
请注意FOLDER_main\FOLDER_sub1\FOLDER_sub11
等递归
操作mkdir
和xcopy
命令仅echo
仅用于调试目的:
@echo OFF
for /F "delims=" %%f in ('dir /B /S /AD FOLDER_*') do (
echo mkdir "%~dp0\TestResults\%%~nxf" 2>NUL
echo xcopy /S /E /C "%%~ff" "%~dp0\TestResults\%%~nxf\"
)
考虑向xcopy
添加更多切换,例如
/H
也复制隐藏文件和系统文件。/R
覆盖只读文件。/Y
禁止提示您确认是否要覆盖现有目标文件。