gpt4 book ai didi

windows - xcopy - 复制至少一个匹配模式的文件

转载 作者:可可西里 更新时间:2023-11-01 10:17:03 25 4
gpt4 key购买 nike

每当 xcopy 找不到文件时,它会将 errorLevel 变量从 0 更改为其他值。在我们公司,我们有使用 xcopy 复制文件并根据此 errorLevel 采取行动的大型脚本。

它对特定文件或目录绝对有效。

绝对没问题:

xcopy file dir
if %errorlevel% neq 0 exit -1

但是,如果我想使用 * 而不是指定文件的确切名称,那么检查 errorLevel 将不再有效。

不起作用:

xcopy file* dir
if %errorlevel% neq 0 exit -1

我会得到:

File not found - file*

0 File(s) copied

但是 errorLevel 会是 0

如何确保在使用通配符时至少复制了 1 个文件?

最佳答案

xcopy 命令在使用通配符时不会将零匹配文件视为错误。

作为一种变通方法,您可以使用 where 命令检查是否至少有一个匹配项,在这种情况下,它将 ErrorLevel 设置为 0,否则为 1。添加开关 /Q 可以防止 where 输出任何内容,让它只返回 ErrorLevel:

where /Q "file*"
if %errorlevel% neq 0 exit -1
xcopy "file*" "dir"
if %errorlevel% neq 0 exit -1

您不能对 ErrorLevel 进行一次检查,因为 xcopy 会覆盖 whereErrorLevel。但是,您可以像这样缩短上面的内容:

where /Q "file*" || exit -1
xcopy "file*" "dir" || exit -1

或者甚至像这样:

where /Q "file*" && xcopy "file*" "dir" || exit -1

我在这里将所有文件和目录规范放在引号之间,因为如果其中任何一个包含空格,这是唯一安全的方法。

关于windows - xcopy - 复制至少一个匹配模式的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37724931/

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