批处理:加载栏不起作用

时间:2015-12-01 00:12:24

标签: batch-file cmd loading

我已经完成了一个基本的装载栏,但我无法想到如何让侧面不随装载杆移动。这是我的代码:

insert overwrite local directory '/my/path' 
   row format serde 'org.apache.hadoop.hive.serde2.DelimitedJSONSerDe'  
   select name, info from users ; 

2 个答案:

答案 0 :(得分:0)

您需要的是可变数量的尾随空格。或多或少地保持你所拥有的......这是一种方法。

@echo off
setlocal enabledelayedexpansion
title Loading... 
color 0a
set max=19
set load=
set /a loadnum=0
set /a loadnum1=0
set "spaces=                    "
:Loading
set load=%load%²
set /a numspaces=%max%-1+%loadnum1%
set "displayspaces=!spaces:~0,%numspaces%!
set loadnum1=%loadnum1%
cls
echo                                           Loading ""
echo                                         ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                                         º%load%%displayspaces%º
echo                                         ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ping localhost -n 2 >nul
set /a loadnum+=1
set /a loadnum1+=-1
if %loadnum% LSS %max% goto :Loading
endlocal

答案 1 :(得分:0)

在这个解决方案中更容易修改加载条的宽度只改变一个数字;它还可以最大限度地减少屏幕上的闪烁,将输出命令封装在一个比单独行更快执行的代码块中。

@echo off
setlocal EnableDelayedExpansion

set max=16

title Loading... 
color 0a
set "top=É"
set "spaces="
set "bottom=È"
for /L %%i in (1,1,%max%) do (
   set "top=!top!Í"
   set "spaces=!spaces! "
   set "bottom=!bottom!Í"
)
set "top=!top!»"
set "bottom=!bottom!¼"

set /A loadnum=0, loadNum1=max-1
set "load="

:Loading
set "load=%load%²"
(
cls
echo                                           Loading ""
echo                                         %top%
echo                                         º%load%!spaces:~0,%loadnum1%!º
echo                                         %bottom%
)
ping localhost -n 2 >nul
set /A loadnum+=1, loadnum1-=1
if %loadnum% lss %max% goto Loading

cls
timeout 1 >nul
title
color