“_”未被识别为批处理中的内部或外部命令
'_' is not recognized as an internal or external command in batch
编辑:我没有意识到您必须在 echo
命令中使用转义符。查看链接的重复答案和此问题的答案后,我通过在 >
和 |
上使用转义符解决了我的问题。我还实施了@Mofi 的建议,即从 ERRORLEVEL
语句中删除 ==
。非常感谢大家的建议和建议!更正后的代码是:
@ECHO OFF
ECHO ====================================================
ECHO \ _______ __ __ /
ECHO / /_ __(_)_ _ ___ / //_/__ ___ ___ ___ ____ \
ECHO \ / / / / ' \/ -_) ,^< / -_) -_) _ \/ -_) __/ /
ECHO / /_/ /_/_/_/_/\__/_/^|_^|\__/\__/ .__/\__/_/ \
ECHO \ /_/ /
ECHO / Choose an Option: \
ECHO \ Clock [I]n /
ECHO / Clock [O]ut \
ECHO \ [S]ee Previous Times /
ECHO / \
ECHO \ /
ECHO / \
ECHO \ /
ECHO / \
ECHO ====================================================/
CHOICE /c IOS /N
IF ERRORLEVEL 3 goto :Times
IF ERRORLEVEL 2 goto :Out
IF ERRORLEVEL 1 goto :In
原问题:
我正在制作一个名为 "TimeKeeper" 的文件,我希望它看起来很酷,所以我让它以 ASCII 艺术风格打印计时器。但是每次我 运行 脚本在回显前四行后都会出错并说:
Access is denied.
'_' is not recognized as an internal or external command, operable program or batch file.
让我感到困惑的是我正在使用 echo 输出 ASCII,而且它的格式似乎正确。我用 ANSII 编码,文件中没有其他编码格式
代码:
@ECHO OFF
ECHO ====================================================
ECHO \ _______ __ __ /
ECHO / /_ __(_)_ _ ___ / //_/__ ___ ___ ___ ____ \
ECHO \ / / / / ' \/ -_) ,< / -_) -_) _ \/ -_) __/ /
ECHO / /_/ /_/_/_/_/\__/_/|_|\__/\__/ .__/\__/_/ \
ECHO \ /_/ /
ECHO / Choose an Option: \
ECHO \ Clock [I]n /
ECHO / Clock [O]ut \
ECHO \ [S]ee Previous Times /
ECHO / \
ECHO \ /
ECHO / \
ECHO \ /
ECHO / \
ECHO ====================================================
CHOICE /c IOS /N
IF ERRORLEVEL == 3 goto :Times
IF ERRORLEVEL == 2 goto :Out
IF ERRORLEVEL == 1 goto :In
由于错误,它在关闭之前甚至没有进入选择提示。这基本上停止了整个程序,所以我被卡住了,任何意见或建议都会有很大帮助!
批处理文件中的某些字符无论放在何处(即使在文本输出中)都会被解释。
比如|
和(
有特殊含义,"escaping"可以这样表示:^|
和^(
。
如果您遇到特殊字符的其他问题,这里有一个列表,以及您在显示文本时应该转义它们的方式:
编辑:我没有意识到您必须在 echo
命令中使用转义符。查看链接的重复答案和此问题的答案后,我通过在 >
和 |
上使用转义符解决了我的问题。我还实施了@Mofi 的建议,即从 ERRORLEVEL
语句中删除 ==
。非常感谢大家的建议和建议!更正后的代码是:
@ECHO OFF
ECHO ====================================================
ECHO \ _______ __ __ /
ECHO / /_ __(_)_ _ ___ / //_/__ ___ ___ ___ ____ \
ECHO \ / / / / ' \/ -_) ,^< / -_) -_) _ \/ -_) __/ /
ECHO / /_/ /_/_/_/_/\__/_/^|_^|\__/\__/ .__/\__/_/ \
ECHO \ /_/ /
ECHO / Choose an Option: \
ECHO \ Clock [I]n /
ECHO / Clock [O]ut \
ECHO \ [S]ee Previous Times /
ECHO / \
ECHO \ /
ECHO / \
ECHO \ /
ECHO / \
ECHO ====================================================/
CHOICE /c IOS /N
IF ERRORLEVEL 3 goto :Times
IF ERRORLEVEL 2 goto :Out
IF ERRORLEVEL 1 goto :In
原问题:
我正在制作一个名为 "TimeKeeper" 的文件,我希望它看起来很酷,所以我让它以 ASCII 艺术风格打印计时器。但是每次我 运行 脚本在回显前四行后都会出错并说:
Access is denied.
'_' is not recognized as an internal or external command, operable program or batch file.
让我感到困惑的是我正在使用 echo 输出 ASCII,而且它的格式似乎正确。我用 ANSII 编码,文件中没有其他编码格式
代码:
@ECHO OFF
ECHO ====================================================
ECHO \ _______ __ __ /
ECHO / /_ __(_)_ _ ___ / //_/__ ___ ___ ___ ____ \
ECHO \ / / / / ' \/ -_) ,< / -_) -_) _ \/ -_) __/ /
ECHO / /_/ /_/_/_/_/\__/_/|_|\__/\__/ .__/\__/_/ \
ECHO \ /_/ /
ECHO / Choose an Option: \
ECHO \ Clock [I]n /
ECHO / Clock [O]ut \
ECHO \ [S]ee Previous Times /
ECHO / \
ECHO \ /
ECHO / \
ECHO \ /
ECHO / \
ECHO ====================================================
CHOICE /c IOS /N
IF ERRORLEVEL == 3 goto :Times
IF ERRORLEVEL == 2 goto :Out
IF ERRORLEVEL == 1 goto :In
由于错误,它在关闭之前甚至没有进入选择提示。这基本上停止了整个程序,所以我被卡住了,任何意见或建议都会有很大帮助!
批处理文件中的某些字符无论放在何处(即使在文本输出中)都会被解释。
比如|
和(
有特殊含义,"escaping"可以这样表示:^|
和^(
。
如果您遇到特殊字符的其他问题,这里有一个列表,以及您在显示文本时应该转义它们的方式: