如果我在 cmd 中以 结束一行^
,它会要求更多输入。
D:\some\folders>do ^
More? stuff
假设我不想do
每次做某事时都输入,所以我把它放在一个 .bat 中,假设stuff
我想做的事情每次都不一样。因此我创建了以下 .bat 文件:
do ^
我运行它并期望它要求输入,More?
以便我可以输入stuff
。但是它没有。它永远什么都不做。我该如何让它工作?
答案1
该^
字符是批处理文件“转义”字符. 当单独用在行尾时,它变成行继续符,用于将多行视为一行。
因此,在批处理文件中,如果你输入
echo This ^
is a single ^
line!
它将其视为一行,相当于:
echo This is a single line!
如果批次中没有“下一行”,就像您的单行批次示例中那样do ^
,就没有下一行可以附加,因此它不会附加任何内容(因此似乎什么也不做)。
当您^
在命令提示符下使用行继续符时,它会显示提示符,More?
因为您告诉它您想要在下一行继续执行命令,此时您可以继续执行命令,例如:
Y:\>echo This ^
More? is a single ^
More? line!
This is a single line!
要使批处理文件停止并提示输入,您需要研究使用set /p
,它将提示输入,然后将该输入分配给变量。例如:
set /P name="What Is Your Name? "
echo Hello %name%!
答案2
如果您希望批处理提示您输入,则可以使用 set /p。例如,要创建变量 %stuff%,您可以在批处理中使用以下命令:
set /p stuff=What stuff do you want to do?:
这样会提示“你想做什么事情?”然后你就可以输入这些内容,这些内容将会被保存在 %stuff% 变量中,你可以在脚本的其他地方使用它们。