如何通过VBA在Windows命令提示符窗口中添加ASCII艺术字符画
VBA调用CMD输出ASCII艺术字实现方法
直接将多行ASCII字符塞入单个echo后无法正常显示,核心原因有两点:一是CMD单条echo命令仅支持输出单行内容,二是ASCII画中包含|这类CMD特殊语法字符,直接执行会被解析为管道命令而非普通文本,按以下步骤处理即可正常显示:
处理规则
- 逐行拆分ASCII画,每行对应一条独立的
echo命令,行与行之间用&连接,按顺序执行 - ASCII画中出现的CMD特殊字符(
|、<、>、&、^)前,需要加^做转义,否则会被识别为命令语法 - 纯空白行不要直接写
echo,要写成echo.,避免输出"ECHO 处于打开状态"这类系统提示 - 严格保留每行开头、结尾的空格,不要随意删减,否则字符画会错位变形
对应示例代码
针对你提供的ASCII样例,处理后替换原代码中"Art Here"位置的完整代码如下:
' 拼接ASCII艺术字的CMD命令段 Dim artCmd As String artCmd = _ "echo ____ & " & _ "echo / __ \ ___ _ __ & " & _ "echo / / / // _ \^| ^| / / & " & _ "echo / /_/ // __/^| ^|/ / & " & _ "echo /_____/ \___/ ^|___/ & " & _ "echo. & " ' 执行最终命令 shellOUT = oShell.Run("cmd.exe /s /c " & artCmd & " " & f & " " & cf, vbNormalFocus, True)
更简便的替代方案
如果ASCII画行数多、特殊字符杂,逐行转义拼接效率太低,可以提前把ASCII画存为纯文本文件(比如命名为logo.txt),直接用CMD的type命令读取文件输出即可,不需要做任何转义处理,对应代码片段替换为:
' 替换为你的ASCII文本文件实际存储路径即可 Dim artCmd As String artCmd = "type ""C:\your_actual_path\logo.txt"" & "
内容的提问来源于stack exchange,提问作者j johns
相关产品推荐
相关产品推荐

