cp -r 等效于 windows 命令提示符,没有错误代码 1
cp -r equivalent in windows command prompt without error code 1
我需要在 windows 批处理脚本中对 linux 执行相当于 cp -r
的操作。一般的解决方案似乎是 robocopy (或 xcopy which has been deprecated).
所以执行操作:
robocopy source_folder destination_folder
将 source_folder(和子项)复制到 destination_folder。如果目标文件夹不存在,它会创建它,但是,它将 return 退出代码 1。如何执行此复制操作而不收到错误代码?
(换句话说,与 cp -r
在 *nix 系统上所做的相同)。
编辑:
为了阐明 cp -r
的作用是递归复制,我想从
folder
|-subfolder_a
|-my_file.txt
至:
folder
|-subfolder_a
|-my_file.txt
|-subfolder_b
|-my_file.txt
两个 my_file.txt
是相同的,这将在 *nix 上用 cp -r subfolder_a subfolder_b
完成(从 folder
中)。我尝试在 windows 上使用 robocopy subfolder_a subfolder_b
执行此操作,但得到 error_code 1。我想在没有任何错误代码的情况下执行此操作(并且不忽略错误代码)。
如果文件复制成功,Robocopy 会将 %ERRORLEVEL%
设置为 1。与是否创建目录无关。 See this list 个 Robocopy 退出代码。
作为学术练习,您可以使用 cmd /c exit /b 0
将退出代码设置回 0。如果你想把它合并到 robocopy
命令中,做这样的事情:
robocopy src dest && (echo Nothing copied) || cmd /c exit /b 0
正如 Magoo 指出的那样,xcopy
可能不会很快消失。
xcopy src dest\
returns 成功时退出代码为 0,失败时为非零。根据 Microsoft documentation、xcopy
returns 的退出代码如下:
Exit code Description
0 Files were copied without error.
1 No files were found to copy.
2 The user pressed CTRL+C to terminate xcopy.
4 Initialization error occurred. There is not enough memory or disk space, or you entered an invalid drive name or invalid syntax on the command line.
5 Disk write error occurred.
我需要在 windows 批处理脚本中对 linux 执行相当于 cp -r
的操作。一般的解决方案似乎是 robocopy (或 xcopy which has been deprecated).
所以执行操作:
robocopy source_folder destination_folder
将 source_folder(和子项)复制到 destination_folder。如果目标文件夹不存在,它会创建它,但是,它将 return 退出代码 1。如何执行此复制操作而不收到错误代码?
(换句话说,与 cp -r
在 *nix 系统上所做的相同)。
编辑:
为了阐明 cp -r
的作用是递归复制,我想从
folder
|-subfolder_a
|-my_file.txt
至:
folder
|-subfolder_a
|-my_file.txt
|-subfolder_b
|-my_file.txt
两个 my_file.txt
是相同的,这将在 *nix 上用 cp -r subfolder_a subfolder_b
完成(从 folder
中)。我尝试在 windows 上使用 robocopy subfolder_a subfolder_b
执行此操作,但得到 error_code 1。我想在没有任何错误代码的情况下执行此操作(并且不忽略错误代码)。
如果文件复制成功,Robocopy 会将 %ERRORLEVEL%
设置为 1。与是否创建目录无关。 See this list 个 Robocopy 退出代码。
作为学术练习,您可以使用 cmd /c exit /b 0
将退出代码设置回 0。如果你想把它合并到 robocopy
命令中,做这样的事情:
robocopy src dest && (echo Nothing copied) || cmd /c exit /b 0
正如 Magoo 指出的那样,xcopy
可能不会很快消失。
xcopy src dest\
returns 成功时退出代码为 0,失败时为非零。根据 Microsoft documentation、xcopy
returns 的退出代码如下:
Exit code Description
0 Files were copied without error.
1 No files were found to copy.
2 The user pressed CTRL+C to terminate xcopy.
4 Initialization error occurred. There is not enough memory or disk space, or you entered an invalid drive name or invalid syntax on the command line.
5 Disk write error occurred.