Проблема пакетного кода с ASCII art: & ldquo; Неверный синтаксис команды & rdquo;

2 ответа

Лучший способ - узнать, каких персонажей нужно убежать. В случае вашего «так называемого» искусства, вам нужно только избежать < и | символов.

Пожалуйста, удалите два escape-символа, ^ , (также известные как каретки) , в первой строке, которая предшествует скобкам, ) [ 1125] и ( . Вам нужно только избегать закрывающих скобок, ) , если ваше искусство находится в скобках.

Затем просто добавьте недостающие каретки в остальные пять строк, перед пятью оставшимися символами трубы, | .

Пример:

@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 для возможного 125 ] и 500, чтобы увидеть различия в скорости . Последняя строка там только для того, чтобы вы могли видеть все, вы можете удалить ее, как только вы довольны результатом.

0
ответ дан Compo 2 March 2019 в 10:45
поделиться

В команде echo необходимо экранировать символы <>|^&, !, когда включено отложенное расширение (с ^^!), и ), когда echo находится внутри блока в скобках.

В вашем коде есть символы <)|; вы не находитесь внутри блока в скобках, поэтому вам нужно экранировать только символы <|. Ваш код должен выглядеть следующим образом:

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.

Примечание. Если вы не уверены, какие символы следует экранировать, экранируйте их все и проверьте, работает ли ваш код. Затем начните удаление некоторых escape-символов (опционально) и проверьте результат! Это должно работать нормально!

Интересные ссылки:

0
ответ дан double-beep 2 March 2019 в 10:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: