使用批次回显以某种方式显示输出

时间:2017-12-24 23:15:04

标签: windows batch-file

我正在使用批处理程序,程序从文本文件中读取根目录,并计算所有根目录中文件夹文件的总数。该程序正在运行,但我想以某种方式显示输出。

这就是我想要显示输出的方式

enter image description here

0:OF:6

每次程序在一个根目录中完成计数时,第一个值应该更改。我已经为它编写了代码,但我得到的输出就是这个。

enter image description here

以下是我为改变它而编写的代码。

:textUpdate
echo !counter! : OF : %number%
GOTO :EOF

其中计数器是根目录的当前数量,数字是在文本文件中找到的目录总数。有没有办法像第一个那样显示输出。

1 个答案:

答案 0 :(得分:1)

您可以滥用set /p来写入屏幕。它不会附加换行符。您还需要回车符返回到行的开头以覆盖旧输出:

@echo off
setlocal EnableDelayedExpansion
for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a"
for /l %%n in (1,1,6) do (
    set /P "=Count %%n of 6!CR!" <nul
    timeout 1 >nul
)

第一个for /f循环只是获得CR(回车)。您必须使用延迟扩展才能使用它(%CR%不起作用。)