使用批处理脚本将特定文件从源目录复制到目标目录和子目录



我想将特定文件复制到目标目录结构中,这意味着所有文件夹和子文件夹以及子子文件夹。基本上到目录树。

我尝试使用robocopy,但它只能选择在源而不是目标上删除级别

这就是我迄今为止使用机器人复制和简单批处理尝试过的

:: copies to only one target directory
robocopy "%SOURCE_FILE_DIR_PATH%" "%TARGET_ROOT_FOLDER_PATH%" %FILE_NAME%
:: copies to only 1 sub-level
for /f "delims=" %%a in ('dir /b "%TARGET_ROOT_FOLDER_PATH%"') do (
for /f "delims=" %%b in ('dir /b "%TARGET_ROOT_FOLDER_PATH%%%a"') 
do (
copy /y "%FILE_NAME%" "%TARGET_ROOT_FOLDER_PATH%%%a%%b"    
)
)

您可以组合/D/R选项来迭代目录树。 所以我认为这对你有用。

set "TARGET_ROOT_FOLDER_PATH=C:foldersubfolder"
set "FILE_NAME=foo.txt"
FOR /D /R "%TARGET_ROOT_FOLDER_PATH%" %%G IN (*) DO COPY /y "%FILE_NAME%" "%%G"

您可以稍微修改代码以使用DIR命令的/AD/S选项。

for /f "delims=" %%G in ('dir /ad /b /s "%TARGET_ROOT_FOLDER_PATH%"') do copy  "%FILE_NAME%" "%%G"

最新更新