使用批处理脚本将特定文件从源目录复制到目标目录和子目录
Copy specific file from source directory to target directory and sub-directories using batch script
我想将特定文件复制到目标目录结构,这意味着所有文件夹和子文件夹和子文件夹。基本上是一个目录树。
我试过使用 robocopy,但它只能选择在源上而不是在目标上污染级别
这是我迄今为止使用 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:\folder\subfolder"
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"
我想将特定文件复制到目标目录结构,这意味着所有文件夹和子文件夹和子文件夹。基本上是一个目录树。
我试过使用 robocopy,但它只能选择在源上而不是在目标上污染级别
这是我迄今为止使用 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:\folder\subfolder"
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"