gpt4 book ai didi

windows - 批处理文件进度纺车

转载 作者:可可西里 更新时间:2023-11-01 14:42:01 25 4
gpt4 key购买 nike

我已经尝试了好几天,似乎可以让它发挥作用。我找到了一个示例,但它使用了 (CryEcho),但它不起作用。我只是想添加这个,让用户知道在 ping IP 地址时发生了什么事。我确实在这里找到了一些代码,但它让我感到困惑,因为我只是为了好玩而开始摆弄批处理文件。

无论如何,我想要使用类似下面示例的内容,但带有类似 (Waiting...[spinner]) 的文本。谢谢!

@echo off
setlocal

set COUNT=0
set MAXCOUNT=10
set SECONDS=1

:LOOP
title "\"
call :WAIT
title "|"
call :WAIT
title "/"
call :WAIT
title "-"
if /i "%COUNT%" equ "%MAXCOUNT%" goto :EXIT
set /a count+=1
echo %COUNT%
goto :LOOP

:WAIT
ping -n %SECONDS% 127.0.0.1 > nul
ping -n %SECONDS% 127.0.0.1 > nul
goto :EOF

:EXIT
title FIN!
endlocal

我也找到了这段代码:

@echo off
rem Example showing how to use CryEcho to produce a spinning wheel to show activity.

CryEcho Working ...
call :DoSomeWork
call :SpinAlive
call :DoSomeWork
call :SpinAlive
call :DoSomeWork
call :SpinAlive
call :DoSomeWork
call :SpinAlive
call :DoSomeWork
call :SpinAlive
call :DoSomeWork
call :SpinAlive
call :DoSomeWork
call :SpinAlive
call :DoSomeWork
call :SpinAlive
call :DoSomeWork

cryecho \s\nFinished.

goto :eof

:DoSomeWork
ping -n 1 localhost > nul
goto :eof

:SpinAlive
if "%Spinner%" == "2" (cryecho \\\b)
if "%Spinner%" == "3" (cryecho -q "|"\b)
if "%Spinner%" == "4" (cryecho /\b set Spinner=0) else (cryecho -\b set Spinner=1)
set /A Spinner=%Spinner%+1
goto :eof

最佳答案

这里的主要技巧是将光标移回同一行。
这可以通过 carriage return 来完成或 backspace人物。

@echo off
setlocal EnableDelayedExpansion
for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a"

FOR /L %%n in (1,1,10) DO (
call :spinner
ping localhost -n 2 > nul
)
exit /b

:spinner
set /a "spinner=(spinner + 1) %% 4"
set "spinChars=\|/-"
<nul set /p ".=Waiting !spinChars:~%spinner%,1!!CR!"
exit /b

<CR>字符是根据 copy /z 的输出创建的.
输出由 set /p 完成, 因为这省略了 CR/LF 的输出在最后。
!CR!每次输出 强制光标移回第一列。
但随着 Win7 和 Vista 删除所有空格以及 CR来自 set /p 的领先输出, 它放在最后。

关于windows - 批处理文件进度纺车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14711188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com