批处理脚本如果存在xcopy

时间:2013-04-09 16:56:29

标签: file batch-file xcopy

我需要一个批处理脚本和xcopy的帮助。我有一个文件夹里面有很多不同的文件夹。例如:"测试"是主目录,里面有New folder 1New folder 2New 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上的错误。

2 个答案:

答案 0 :(得分:0)

我希望我能正确理解这一点,如果我错了就告诉我。

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

旁注:您的脚本中有拼写错误,您检查New Folder 1两次是否存在,而不是New Folder 1New Folder 2。不知道那是不是就这样,但我想我会告诉你。

答案 1 :(得分:0)

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

@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

注意:请始终在带有空格的路径名周围加上双引号。