批处理脚本如果存在xcopy

问题描述 投票:1回答:2

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

file batch-file xcopy
2个回答
0
投票

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

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

旁注:你的剧本中有一个拼写错误,你要检查New Folder 1的存在两次,而不是New Folder 1New Folder 2。不确定那是不是就这样,但我想我会告诉你的。


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

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

© www.soinside.com 2019 - 2024. All rights reserved.