gpt4 book ai didi

windows - cp -r 在没有错误代码 1 的 Windows 命令提示符下等效

转载 作者:可可西里 更新时间:2023-11-01 11:52:14 26 4
gpt4 key购买 nike

我需要执行相当于 cp -r 的操作在 Windows 批处理脚本中的 Linux 上。一般的解决方案似乎是 robocopy (或 xcopy which has been deprecated )。

所以执行操作:

robocopy source_folder destination_folder

将 source_folder(和子项目)复制到 destination_folder。如果目标文件夹不存在,它会创建它,但它会返回退出代码 1。如何在不收到错误代码的情况下执行此复制操作?

(换句话说,在 *nix 系统上执行与 cp -r 相同的操作)。

编辑:澄清什么cp -r它是递归复制吗,我想从

folder
|-subfolder_a
|-my_file.txt

到:

folder
|-subfolder_a
|-my_file.txt
|-subfolder_b
|-my_file.txt

哪里都是my_file.txt是相同的,这将在 *nix 上用 folder 完成(从 cp -r subfolder_a subfolder_b 内) .我试图在 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\

成功时返回退出代码 0,失败时返回非零。根据Microsoft documentation , xcopy 返回以下退出代码:

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 - cp -r 在没有错误代码 1 的 Windows 命令提示符下等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27864607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com