我刚刚制作了一个小实用程序,但我遇到了一个奇怪的(但可以避免的)问题。
if /I %ans%==0 (
set /p ans1="Do you want to save your custom graphics ?(y/n): "
if "%ans1%"=="y" ( PAUSE )
xcopy backup\graphics "%id%\data\base\graphics" /E
)
当我执行程序的这一部分时,由于某种原因,第二个if在用户可以回答问题之前执行,这意味着每次都会跳过它,因为字符串保持为空。 我真的无法理解它这样做的原因,即使我找到了另一种方式,我真的想要解释它为什么会发生。
由于
答案 0 :(得分:0)
所以,多亏了@Stephan,这里有两个解决方案:
使用延迟变量,使用exist_bar -> exists_bar_helper -> bar (woops) // oh no
// I cannot access that var, this is unrecoverable error AAAAAAAA
并将setlocal enabledelayedexpansion
设置为%asn1%
使用选择而不是第二个if,在我的情况下效果更好