通过网络驱动器循环执行robocopy的实现及问题解决记录
循环通过网络驱动器执行Robocopy的可用脚本
如果有人在找这类自动化同步的实用脚本,我把自己调试通的版本分享出来~
踩过的小坑
我之前碰到个头疼的问题:当目标网络路径里有Drive C这种带空格的名称时,robocopy的/r:1(重试1次)和/w:1(等待1秒)参数完全不生效。后来把路径里的空格去掉,改成Disk_C之后,参数就正常被识别了。
提前说清楚:这绝对不是最优的实现方式,但确实能满足循环同步的需求~
可用代码
@echo off setlocal enabledelayedexpansion set "count=1" set "local=c:\cmd_Scripts\" :update echo Connecting to machine !count!. if exist "\\10.3.71.6!count!\Disk_C\cmd_Scripts\" ( robocopy %local% \\10.3.71.6!count!\Disk_C\cmd_Scripts\ /r:1 /w:1 echo Machine !count! DONE. echo. ) rem 可根据需求调整循环逻辑,比如设置机器数量上限或其他终止条件 set /a count+=1 goto update endlocal
简单说明
- 脚本启用了
delayedexpansion来处理循环中count变量的动态更新 - 每次循环会先检查目标机器的网络路径是否存在,仅当路径有效时才执行同步
- 同步完成后会输出对应机器的完成提示,方便查看执行进度
内容的提问来源于stack exchange,提问作者SirAleXbox
相关产品推荐
相关产品推荐

