2016-06-21 5 views
1

Windowsにバッチファイルを作成しています。大きなテキストファイルを1行ずつ処理する必要があります。これを実行中にcmdウィンドウにカウンタを表示したいと思います。次のコードはかなり良い作品:ループのバッチファイルでカウンタ - 同じ場所に番号を保持する方法は?

@echo off 
setlocal enableextensions enabledelayedexpansion 
set /a count=1 

for /f "tokens=*" %%A in (myFile.txt) do (
    set /a count+=1 
    echo.!count! 
) 

唯一の問題は、私はすべてのカウント増分ため新しい行を取得することです。私が本当にしたいことはある

--------------------- 
- START PROCESS - 
--------------------- 
1 
2 
3 
4 
.. 
1000 

ダイナミック数は、ターミナルウィンドウでを表示:だからcmdウィンドウ内の出力は次のようなものです。このようなもの:

--------------------- 
- START PROCESS - 
--------------------- 
count = 124   <= this number should dynamically increment 

どうすればよいですか?

EDIT:ターミナルで新しい行を開始せずにエコーを作成する方法を説明しないWindows batch: echo without new line

ポスト。だから、これは私がそれを実装しようとした方法です:

@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 

答えて

1

次のコードは動作するようです:

@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 
) 
関連する問題