我公司的服务器每天都有32位和64位系统的更新。
我必须将最新的文件夹更新复制到位置C:\Latest\
。更新发生的路径如下所示:
\\serv1\everyday\abcd\x64_00-0123-2068\ \\serv1\everyday\abcd\x86_00-0123-2077\ \\serv1\everyday\abcd\x64_00-0122-2067\ \\serv1\everyday\abcd\x86_00-0122-2076\ \\serv1\everyday\abcd\x64_00-0121-2066\ \\serv1\everyday\abcd\x86_00-0121-2075\ \\serv1\everyday\abcd\x64_00-0120-2065\ \\serv1\everyday\abcd\x86_00-0121-2074\ ...
所以基本上我每天都要复制最新的(按日期和时间)...\x64_00...\disk\system
文件夹。如何为此编写批处理脚本?如何在文件夹名称中使用通配符?
我试过这个:
for /f "delims=" %a in ('dir "\\serv1\everyday\abcd\x64_*\Disk\system\" ') do robocopy /MAXAGE:1 %a C:\Latest\.
但它没有用。
答案 0 :(得分:1)
您只能在路径的最后一个元素中使用*
和?
等全局通配符。
您可能正在寻找以下方法:
pushd "\\serv1\everyday\abcd" || exit /B 1
for /F "delims=" %%D in ('
dir /B /A:D /O:N "x64_*"
') do set "LATEST=%%~D"
robocopy "%LATEST%\Disk\system" "C:\Latest" /MAXAGE:1
popd