如何在Batch脚本中打印指定ASCII艺术图案,无需逐行echo输出
Batch打印ASCII艺术字解决方案
方案1:独立文本文件方案(最省心,无需处理转义)
这是操作最简单、完全不需要修改目标内容的方案:
- 将你需要打印的所有ASCII内容完整复制到单独的文本文件中,命名为
ascii_art.txt,和你的Bat脚本放在同一目录下 - 在Bat脚本中只需添加一行代码即可完成输出:
type ascii_art.txt
该方式无需处理任何特殊字符转义,也不用逐行编写echo命令,运行脚本即可完整输出所有内容。
方案2:内容嵌入脚本方案(无需额外携带文件)
如果你不想额外带独立的文本文件,可以将ASCII内容直接嵌入到脚本末尾,用以下代码直接读取输出,同样不需要逐行写echo:
@echo off :: 跳过脚本开头的代码行,直接输出下方的ASCII内容 for /f "skip=7 delims=" %%i in ('type "%~f0"') do ( if "%%i"==":END_CONTENT" exit /b echo/%%i ) :: 下方直接粘贴你的ASCII内容即可,无需做任何修改 <body> _ /_\ _ )_( _ |`-.___,.-~'`|=|`'~-.,___,-'| | __________|=|__________ | | | ______|=|__________| | ___ _ _ _ _ _ | | | ____|=|_____ / | | |_| |_ | |_ | _ |_ |\| |\ /\ |_ | | | / |=| / /| | | | | |_ |_ |_ |_| |_ | | |/ \/ | | | |/ ,-|_|-. / / /_|_|______ ______ _______ ____ | | ,' _____ / // / \ ___ |\ / \ `. \ \ | | / ,'| _ |/ // / | | \ | | | | |`. \ / \ | | /_// |/V\/ // / | | \| | | | | \ \ / /\ \ | | /__| |/ / / | | | | | | \ | / / \ \ | | /\ | / /| /\ | |__/| | | | | | || | | | | | / \ |/ // \\ / | __ | | | | | | || |____| | | | / \/ |/ // \ | | \| | | | | | || ____ | | | / / // \ | | | | | | / || | | | | | / / / /| \ | | /| | | /| | | / / | | | | | |/_____/ // / |________\| |___/ | | |___/ | | |,' / | | | | | | / // /| | /_________|/_________|/______,' /____\ /____\ \ \ / // / | | /|/ / \ \ / / /| | |______/ | / \ \/______| | |________|/ `.`. | | | ,',' `.`. | | | ,',' `.`-.| | |,-',' `-.| | |,-' | | | | | | | | | | | | | | | \|/ V <body> :END_CONTENT
你之前echo输出失败的原因
你要输出的ASCII内容中包含大量|、<、>、\等Batch的特殊控制字符,直接写在echo语句后会被系统识别为重定向符号或命令分隔符,因此会出现报错或输出内容错乱的问题,以上两种方案都可以完全避开转义特殊字符的麻烦。
内容的提问来源于stack exchange,提问作者Viridian
相关产品推荐
相关产品推荐

