1

我需要一个批处理脚本和xcopy. 我有一个文件夹,里面有很多不同的文件夹。例如:“测试”是主目录,在里面我有New folder 1, New folder 2, New folder 3... 每周这些文件夹都必须复制到不同的服务器。

我的脚本是:

if exist "%dir%\New folder 1" (
  xcopy %dir%\New folder 1 C:\Users\user1\New folder1 /i /q /s /y /z
  echo New folder 1 copied successfully
) 
if exist "%dir%\New folder 2" (
  xcopy %dir%\New folder 2 C:\Users\user1\New folder2 /i /q /s /y /z
  echo New folder 2 copied successfully
)

我需要更新我的脚本以向我显示cmd何时xcopy无法复制某些文件的错误。

4

2 回答 2

0

我希望我理解正确,如果我错了,请告诉我。

如果存在与权限等有关的问题,XCopy 应该自己抛出错误。如果只是某些东西不存在,只需在ELSE您的IF语句中添加一个并回显您想要的任何错误。

旁注:您的脚本中有错字,您正在检查是否存在New Folder 1两次,而不是New Folder 1New Folder 2. 不确定这是否只是在 SO,但我想我会告诉你。

于 2013-04-09T17:02:55.740 回答
0

Xcopy 返回最后一个操作的错误代码,您可以使用&&and||运算符检查:

@echo off &setlocal
if exist "%dir%\New folder 1" xcopy "%dir%\New folder 1" "C:\Users\user1\New folder1" /i /q /s /y /z && echo New folder 1 copied successfully || echo copied NOT successfully
if exist "%dir%\New folder 2" xcopy "%dir%\New folder 2" "C:\Users\user1\New folder2" /i /q /s /y /z && echo New folder 2 copied successfully || echo copied NOT successfully

注意:始终用双引号将路径名与空格放在一起。

于 2013-04-09T17:34:21.477 回答