首页 > 解决方案 > ASCII 艺术的批处理代码问题:“命令的语法不正确”

问题描述

我在解决关于 ASCII 艺术的代码问题时遇到了很多麻烦,有问题的行如下:

PING localhost -n 1 >NUL
echo                                         '   ----' ""-.   \/ //
PING localhost -n 1 >NUL

每次我到达它时,它都会终止 cmd 提示并抛出The syntax of the command is incorrect- 我怀疑我在不知不觉中选择了指定行中几个字符的错误顺序,并且不小心开始了一个从之前的 echo 命令派生的命令。

正如您会注意到的那样,我已经越过了第一个障碍,这是代码的第一行,但是pause命令之后的那个让我难住了。

我想知道是什么符号或符号顺序导致了这种情况,以便我可以改进我的其余代码。我的代码是:

echo                                        ___^<__^(^|^)_   ""-/\//\//
pause
PING localhost -n 1 >NUL
echo                                         '   ----' ""-.   \/ //
PING localhost -n 1 >NUL
echo                                                      )  ]  |
PING localhost -n 1 >NUL
echo                                               ____..-'  . /                          )
PING localhost -n 1 >NUL
echo                                           ,-""      __.,' /   ___                 /,
PING localhost -n 1 >NUL
echo                                          /    ,--""/ / / /,-""   """-.          ,'/
PING localhost -n 1 >NUL
echo                                         [    (    / /\/ /  ,.---,_   ._   _,-','
PING localhost -n 1 >NUL
echo                                          \    -./ / / /  /       -._  """ ,-'
PING localhost -n 1 >NUL
echo                                           -._  / / / /_,'            ""--"
PING localhost -n 1 >NUL
echo                                               "/ / / /"         
PING localhost -n 1 >NUL
echo                                               / /\/ /
PING localhost -n 1 >NUL
echo                                              / / / /  
PING localhost -n 1 >NUL
echo                                             / |,' /  
PING localhost -n 1 >NUL
echo                                            / /   |
PING localhost -n 1 >NUL
echo                                           [ //  ,'   
PING localhost -n 1 >NUL
echo                                           | / ,'
PING localhost -n 1 >NUL
echo                                           |/.-'
PING localhost -n 1 >NUL
echo                                           \-'`

timeout 3

:PASS
ECHO Slyshoiev en dyevet rhyzhok.

标签: batch-fileescapingasciiascii-art

解决方案


最好的方法是了解哪些字符需要转义。对于您的“所谓”艺术,您只需要转义<and|字符。

请删除第一行括号和.之前的两个转义字符 , ^也称为脱字符号)如果您的艺术作品在括号内,您只需要转义右括号。)()

然后只需在其他五行中添加缺少的脱字符号,在剩余的五个竖线字符之前,| .

例子:

@Echo Off
Set "Delay=PathPing LocalHost -n -q 1 -p 250 >Nul"
Echo(
Echo                                 ___^<__(^|)_   ""-/\//\//
%Delay%
Echo                                  '   ----' ""-.   \/ //
%Delay%
Echo                                               )  ]  ^|
%Delay%
Echo                                        ____..-'  . /                          )
%Delay%
Echo                                    ,-""      __.,' /   ___                 /,
%Delay%
Echo                                   /    ,--""/ / / /,-""   """-.          ,'/
%Delay%
Echo                                  [    (    / /\/ /  ,.---,_   ._   _,-','
%Delay%
Echo                                   \    -./ / / /  /       -._  """ ,-'
%Delay%
Echo                                    -._  / / / /_,'            ""--"
%Delay%
Echo                                        "/ / / /"
%Delay%
Echo                                        / /\/ /
%Delay%
Echo                                       / / / /
%Delay%
Echo                                      / ^|,' /
%Delay%
Echo                                     / /   ^|
%Delay%
Echo                                    [ //  ,'
%Delay%
Echo                                    ^| / ,'
%Delay%
Echo                                    ^|/.-'
%Delay%
Echo                                    \-'`

Timeout 3 /NoBreak>Nul

:PASS
Echo Slyshoiev en dyevet rhyzhok.

Pause>Nul

我在PathPing上面使用而不是Ping,因为它似乎可以更好地控制延迟速度,调整250到可能125500查看速度差异。最后一行是为了让您可以看到所有内容,一旦您对输出感到满意就可以将其删除。


推荐阅读