尝试在命令提示符 window 中逐行显示一些 ASCII 艺术字,但 window 在显示第一行后关闭。我该如何解决?

Trying to show some ASCII art line by line in a Command Prompt window, but the window closes after the first line is displayed. How do I fix this?

尝试逐行显示 ASCII 艺术文本“Hotdog Water”(请勿询问),但无法正常工作。命令提示符 window 在显示第一行后关闭。

我的代码在this Gist.

提前致谢!

这是您的代码:

@echo off

echo   _    _       _      _              __          __   _            
timeout 1 > nul
echo  | |  | |     | |    | |             \ \        / /  | |           
timeout 1 > nul
echo  | |__| | ___ | |_ __| | ___   __ _   \ \  /\  / /_ _| |_ ___ _ __ 
timeout 1 > nul
echo  |  __  |/ _ \| __/ _` |/ _ \ / _` |   \ \/  \/ / _` | __/ _ \ '__|
timeout 1 > nul
echo  | |  | | (_) | || (_| | (_) | (_| |    \  /\  / (_| | ||  __/ |   
timeout 1 > nul
echo  |_|  |_|\___/ \__\__,_|\___/ \__, |     \/  \/ \__,_|\__\___|_|   
timeout 1 > nul
echo                                __/ |                               
timeout 1 > nul
echo                               |___/                                
timeout 1 > nul
pause

您需要转义一些特殊符号 - 在您的例子中是管道。像这样尝试:

echo   _    _       _      _              __          __   _            
timeout 1 > nul
echo  ^| ^|  ^| ^|     ^| ^|    ^| ^|             \ \        / /  ^| ^|           
timeout 1 > nul
echo  ^| ^|__^| ^| ___ ^| ^|_ __^| ^| ___   __ _   \ \  /\  / /_ _^| ^|_ ___ _ __ 
timeout 1 > nul
echo  ^|  __  ^|/ _ \^| __/ _` ^|/ _ \ / _` ^|   \ \/  \/ / _` ^| __/ _ \ '__^|
timeout 1 > nul
echo  ^| ^|  ^| ^| (_) ^| ^|^| (_^| ^| (_) ^| (_^| ^|    \  /\  / (_^| ^| ^|^|  __/ ^|   
timeout 1 > nul
echo  ^|_^|  ^|_^|\___/ \__\__,_^|\___/ \__, ^|     \/  \/ \__,_^|\__\___^|_^|   
timeout 1 > nul
echo                                __/ ^|                               
timeout 1 > nul
echo                               ^|___/                                
timeout 1 > nul
pause

Pipe 在其两侧都需要一个命令,并将从第一个命令输出到第二个命令。因此 cmd 尝试执行它们 - 如果执行的命令失败(例如 _),整个脚本将退出。要转义特殊字符,请使用 carret - ^