Batch file 批处理文件-选择,缩进提示
我在批处理文件中使用choice来显示这样的提示Batch file 批处理文件-选择,缩进提示,batch-file,Batch File,我在批处理文件中使用choice来显示这样的提示 :choice set /P "c= Is this Correct? (Y/N)" if /I "%c%" EQU "Y" goto :movespot if /I "%c%" EQU "N" goto :exitspot goto :choice 它工作正常,但忽略了“是否正确”中的空格?(是/否)“我正试图使用它来缩进回声 还有其他方法吗?这里有一个代码解决方案,可以在集合/p输出中打印空格 @echo off for /f %%a in
:choice
set /P "c= Is this Correct? (Y/N)"
if /I "%c%" EQU "Y" goto :movespot
if /I "%c%" EQU "N" goto :exitspot
goto :choice
它工作正常,但忽略了“是否正确”中的空格?(是/否)“我正试图使用它来缩进回声
还有其他方法吗?这里有一个代码解决方案,可以在
集合/p
输出中打印空格
@echo off
for /f %%a in ('"prompt $H&for %%b in (1) do rem"') do set "BS=%%a"
set /P "c=X%BS% Is there 10 spaces before? (Y/N)"
对于此类是/否选择,我建议使用,因为它不接受除
Y
/N
以外的条目(Ctrl+C和Ctrl+Break除外,但您也可以使用它们中止set/p
)
然而,choice
会删除前导空格,就像set/p
;它甚至删除了尾随的。虽然演示的也适用于此处,但对于双方:
for/F%%C in('prompt$H^&for%%#in^(.^)do rem/')do set“BS=%%C”
set/P C=“%BS%是否有前导空格和(保留)尾随空格?”
选项/M“\u%BS%是否有一个前导空格和两个尾随空格?\u%BS%”/N
请注意,
choice
如果指定了提示文本(/M
)。前面提到的两个尾随空格中的一个是附加的。默认情况下,choice
追加选项列表([Y,N]
),除非给出了/N
。是<代码>设置/P执行时将删除所有前导空格。有一个技巧是在开始时使用空格,但需要首先将退格捕获到变量中。然后你可以这样做:set/P“c=X%bs%是否正确?(Y/N)”
对我来说,这给了我退格前的X你找到如何将退格字符设置为变量的代码了吗?可能的解决方案:尝试,然后在第二步中执行set/P
或尝试For/F%%B in('prompt$H^&For%%#in^(.^)do rem/')do set“bs=%C”
将空格字符放入变量bs
ans重试Squashman的建议。。。