我正在尝试创建一个批处理文件,该文件将执行以下操作:
我有多个目录,每个目录中都有一个名为'06 -2015'的文件夹。我想创建一个批处理脚本,它将通过所有这些目录并复制文件夹'06 -2015'及其文件,而不是其他任何内容。
示例:
C:\Files\Accounts\06-2015
C:\Files\Sales\06-2015
C:\Files\IT\06-2015
有没有办法可以创建一个类似的脚本:
xcopy C:\Files\*\06-2015 C:\Backup\*\06-2015 /s
或者有不同/更好的方法吗?
答案 0 :(得分:1)
只允许在 last 路径项中使用通配符。
@ECHO OFF
SET "target=06-2015"
IF NOT EXIST c:\backup\%target% MKDIR c:\backup\%target%
FOR /F "delims=" %%G IN ('DIR /B /AD "c:\files"') DO (
if exist "c:\files\%%G\%target%\" (
:: create backup directory if necessary
MKDIR "c:\backup\%%G\%target%\" 2>NUL
XCOPY /S /E /Y "c:\files\%%G\%target%\" "c:\backup\%%G\%target%\"
)
)
答案 1 :(得分:0)
测试:如果您不想复制06-2015中的任何文件夹,请删除/ s和/ e。
@echo off
for /d /r "c:\files" %%a in (06-2015?) do (
if /i "%%~nxa"=="06-2015" xcopy "%%a" "C:\Backup\%%~pnxa\" /s/h/e/k/f/c
)