batch-file - 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.
解决方案
最好的方法是了解哪些字符需要转义。对于您的“所谓”艺术,您只需要转义<
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
到可能125
并500
查看速度差异。最后一行是为了让您可以看到所有内容,一旦您对输出感到满意就可以将其删除。
推荐阅读
- sql - Teradata 处理个位数月份和日期问题
- sql - VB.NET 和 SQL:如何从 SQL Server 数据库更新 ListView / DatagridView
- c# - WinForms 中的线程锁
- ios - YouTube 数据 API 错误 403 权限不足
- javascript - 使用 ScrollMagic 和 GSAP 为它们设置动画时,如何解决两个部分之间发生的溢出问题?
- r - 如何卸载旧版本的 rlang 包?
- javascript - 加载页面时如何自动滚动到没有 ID 的元素?
- python - 如何使用带有 string_agg 的子查询插入带有 SQLAlchemy ORM 的行?
- python - 设置python日志记录级别的正确方法?
- intellij-plugin - 在 IntelliJ IDEA 插件中将捆绑插件声明为依赖项