如何使批处理文件在变量之间切换?

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

我已经有一段时间没有做过其中之一了,非常感谢您的帮助。

这里是示例代码:

:beam_type_toggle

if %beam_type%==E (set beam_type=X)

if %beam_type%==X (set beam_type=E)

goto menu

(:菜单是它返回的主要部分)

我相信你能看到我想做什么。我希望它在执行此部分时简单地更改“E”和“X”。我认为这会很好也很简单,它可能是,但它并没有这样做,我也懒得去阅读微软的文档。这只是我需要快速完成的一件小事。感谢您的帮助

我尝试将值放入和取出引号,但它什么也没做

batch-file
1个回答
0
投票

您可以使用延迟扩展的怪癖轻松地使您的代码工作:

:beam_type_toggle
(
if %beam_type%==E (set beam_type=X)
if %beam_type%==X (set beam_type=E)
)
goto menu

(顺便说一下:@Magoo 的建议也使用了这个延迟扩展怪癖:

for %%s in (E X) do if "%beam_type%" neq "%%s" set "beam_type=%%s"

)

但是有一个更好的方法——给定一个只有两个定义状态的“切换”:

if "%beam_type%"=="E" (set "beam_type=X") else (set "beam_type=E")

奖励:如果变量有任何其他(或没有)值,它将强制它为两个允许值之一(本例中为

E

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