gpt4 book ai didi

batch-file - 为什么这个 .bat cmd 总是命中一个我不打算让它命中的子程序?

转载 作者:行者123 更新时间:2023-12-04 05:59:25 25 4
gpt4 key购买 nike

我在 BAT 文件中有以下内容:

@echo off

Set /P _environment = Please Enter Environment [d] for Development or [a] for Acceptance:

IF ((%_environment% EQU "a") OR (%_environment% EQU "d"))
(goto sub_write_files)
ELSE
(goto end)


:sub_write_files
xcopy script_temp\* \\CHU-%_environment%101\CHU\scripts /D /E /C /R /I /K /Y /S
:end
echo %_environment% Done

这个逻辑对我来说似乎很好,但可能不是因为 sub_write_files每次我触发这个命令时的子程序。我假设缺陷在于条件逻辑。

最佳答案

你需要复习一下你的批处理语法。通过键入 HELP command 可以获得几乎所有命令的帮助。或 command /?在命令提示符下。例如,HELP IF将提供有关 IF 命令的帮助。当然,文档通常不完整和/或令人困惑,但这是一个开始。

你的语法有很多问题。最明显的一个是 IF 不支持任何运算符,如 AND、OR、XOR 等。

您可以通过以下方式实现您正在寻找的逻辑

@echo off

Set /P _environment = Please Enter Environment [d] for Development or [a] for Acceptance:

if "%_environment%" neq "a" if "%_environment%" neq "d" goto :end
:sub_write_files
echo xcopy script_temp\* \\CHU-%_environment%101\CHU\scripts /D /E /C /R /I /K /Y /S
:end
echo %_environment% Done

有很多潜在的改进。例如,您可能想要添加 /I两个 IF 语句的选项,因此大小写无关紧要。或者,如果输入了无效值,您可能希望返回并重试而不是结束。

关于batch-file - 为什么这个 .bat cmd 总是命中一个我不打算让它命中的子程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9102658/

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