我正在Windows中编写批处理文件。我需要逐行处理一个大文本文件。cmd
在执行此操作时,我想在窗口中显示一个计数器。以下代码效果很好:
@echo off
setlocal enableextensions enabledelayedexpansion
set /a count=1
for /f "tokens=*" %%A in (myFile.txt) do (
set /a count+=1
echo.!count!
)
唯一的问题是,每增加一个计数,我都会换一行。所以cmd
窗口中的输出是这样的:
---------------------
- START PROCESS -
---------------------
1
2
3
4
..
1000
我真正想要的是在终端窗口中显示的动态数字。像这样的东西:
---------------------
- START PROCESS -
---------------------
count = 124 <= this number should dynamically increment
我怎么做?
编辑 :
Windows批处理后的文章:没有新行的echo确实说明了如何在终端中不启动新行的情况下进行echo。所以这就是我尝试实现它的方式:
@echo off
setlocal enableextensions enabledelayedexpansion
set /a count=1
for /f "tokens=*" %%A in (iconOldPathList.txt) do (
set /a count+=1
<nul set /p =!count!
)
不幸的是,结果不是一个动态更新的数字。我得到的是:
---------------------
- START PROCESS -
---------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
...
我真正想要的是:
---------------------
- START PROCESS -
---------------------
count = 124 <= this number should dynamically increment
以下代码似乎有效:
@echo off
setlocal EnableDelayedExpansion
for /f %%a in ('copy /Z "%~f0" nul') do set "CR=%%a"
for /L %%n in (100 -1 1) do (
<nul set /P "=This window will close in %%n seconds !CR!"
ping -n 2 localhost > nul
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句