Re wubozh:
3742668 兄的第一段代码括号加错了地方:
if not exist %date:~4% (md %date:~4% & xcopy /e x:\*.* %date:~4%\) else echo %date:~4% %time%备份数据失败 >> log.txt
而 || 在这里并不使用,3742668 兄的第二段代码意味着,在 md 和 xcopy 中任一命令返回错误的 1 时才执行 echo,而非在 if not exist 返回 1 时执行。
另外,xcopy 会自动创建不存在的目标目录,同时,它的开关 /d 可以选择更新比目标新的源文件。
if not exist %date:~4\nul (xcopy /d /e x:\*.* %date:~4%\ >nul 2>nul && echo %date:~4% %time% 备份数据成功>> log.txt || echo %date:~4% %time% 备份数据失败>> log.txt) else (echo %date:~4% %time% 目录已经存在>> log.txt)