我已经阅读了关于这个的大部分主题,并且理解复杂的if/then块是windows命令行中的一个难题,所以我尝试缩小范围,但最终还是出现了“(此时出乎意料”的错误。
我觉得这和设置%confirm%的位置有关,但我真的不确定。最初我在块中有一个goto,我读到它是一个no-go,所以我尝试使用嵌套的if/if/else来解决这个问题。没有骰子。
我想不出比我现在所做的更基本的事情了,因为命令shell的内部工作超出了我的能力范围。
第一个版本:
@echo off
TITLE cleanup
:: make user confirm they want to cleanup old epub conversion files
set /p confirm = "Are you sure? (y/n): "
if %confirm% == y (
rm ePub
rm IP
rm OP
md IP
exit
) else (
if %confirm% == n (
exit
) else (
set /p confirm = "Are you sure? (y/n): "
)
)
当前缩略版本:
@echo off
TITLE cleanup
:: make user confirm they want to cleanup old epub conversion files
set /p confirm = "Are you sure? (y/n): "
if %confirm% == y (
rm ePub
rm IP
rm OP
md IP
exit
) else (
exit
)
最佳答案
当变量实际上为空时,您的代码已破坏语法。尝试
if "%confirm%" == "y" (
这保证了在
==
的左边总是有东西。关于windows - (目前无法预料,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14284295/