我正在使用robocopy从长层次结构的文件夹结构中复制某些文件。例如:*.properties
个文件。它们可能位于目录结构的非常深层(例如C:\a\v\b\g\f\aa.properties
)。现在我想将这些属性文件复制到另一个,只保留最顶层的父文件夹(例如:目标文件夹结构将是a\aa.properties
);我使用/S
选项这样做,但它也包括父母。
以下是我尝试过的批处理文件:
@echo off
::Author = SHUBHENDU
echo Copying files from %1 to %2
set source=%1
set destination=%2
set list=abc def
(for %%a in (%list%) do (
echo Copying files from %%a
ROBOCOPY %source%\%%a %destination%\%%a *_en.properties /S
))
源目录(示例):
F:.
│ temp.bat
│
└───ss
├───asd
│ ss_en.properties
│
└───asdfsdsd
│ aa_en.properties
│
├───dd
│ asdsa.txt
│
└───ff
ff_en.properties
必填目的地目录:
F:.
├───asd
│ ss_en.properties
│
└───asdfsdsd
aa_en.properties
ff_en.properties
答案 0 :(得分:0)
您必须确保来源与目的地不同。
请注意!!!我没有重新创建你的场景,所以这是未经测试的,只是修改了你的代码。我将根据您的错误修复代码。
@echo off
set source=%1
set destination=%2
for %%F in (%destination%) do set destination="%%~fF"
for /r %source% %%F in (.) do if "%%~fF" neq %destination% ROBOCOPY %source%\%%F %destination%\%%F *_en.properties /S