打印管道时“命令的语法不正确”错误

时间:2016-12-19 19:13:41

标签: batch-file

我正在尝试编写一个模拟进度条的批处理脚本,使用|个字符来显示进度。

不幸的是,每当我尝试显示进度条时,我都会收到错误“命令的语法不正确”。我做错了什么?

我的代码:

@echo off
color 0F
mode con: cols=51 lines=18
cls
echo                   _____________
echo.                  |
echo                   _____________

2 个答案:

答案 0 :(得分:3)

您正在使用竖线字符(|),但这不起作用。你必须用^。

来逃避它
@echo 
color 0F
mode con: cols=51 lines=18
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|
echo                   _____________
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 1 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 2 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                      COMPLETE
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 2 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                      
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
ping localhost -n 2 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                      
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   
ping localhost -n 2 >nul
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                      COMPLETE
echo                   =============
echo.
echo                   _____________
echo.                  ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
echo                   =============
cls

答案 1 :(得分:1)

有些技术可以避免反复重新绘制屏幕。 set / P(input)命令允许在没有crlf的情况下进行回显。

任何字母键都会中止循环。

@echo off
color 0F
mode con: cols=51 lines=18
cls
echo.
echo.
echo.
echo.
echo.
echo                   =============
echo                   Initializing.
echo                   =============
echo.
echo                   _____________
Set /p _=".                 "0<NUL
For /L %%A in (1,1,20) Do (
  Set /P dummy=^|<NUL
  CHOICE /T 1 /C 1ABCDEFGHIJKLMNOPQRSTUVWXYZ /D 1 >NUL
  if errorlevel 2 goto :Eof
)