我正在尝试编写一个模拟进度条的批处理脚本,使用|
个字符来显示进度。
不幸的是,每当我尝试显示进度条时,我都会收到错误“命令的语法不正确”。我做错了什么?
我的代码:
@echo off
color 0F
mode con: cols=51 lines=18
cls
echo _____________
echo. |
echo _____________
答案 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
)