2016-10-20 4 views
-4

以下は私がすでに試したことです。可能であれば、プログレスバーの更新が100%にジャンプするのではなく、ゆっくりと行われるようにしたいのですが、更新コマンドが出力には表示されないようにすばやく実行したいと考えています。コマンドプロンプトのタイトルにプログレスバーを作成するコードを書く方法は?

color 0a 
%n=0 
:start 
if /L %n <100 (
%n+1=%n 
title %n 
goto start 
) 
else (
go to end 
) 
:end 
echo finished 

私はthis errorを受け取った、私はそれが何を言っているのか、それがなぜ機能しないのか理解していない。メモ帳でこれを書いて、これをウィンドウ上のバッチファイルとして実行しました。

+7

バッチファイルの構文について読んでください!これはperlではありません。あなたの "バッチファイル"にはたくさんの間違いがあります。 –

+0

質問タイトルはちょうど**コマンドプロンプトのタイトルにプログレスバーを作成することができます** – Squashman

+0

'set /?'、特に 'set/a'を参照してください。だから 'set/a n =!n!+ 1'。その後、現在のエラーを修正している間、次のエラーはDelayedExpansionに関連します。議論は 'for /?'と 'set /?'を参照してください。これを有効にするには 'setlocal /? 'を参照してください。 –

答えて

2

あなたの意欲を引き出すための例です。

@Echo Off 
SetLocal EnableDelayedExpansion 
Set "bar=" 
For /L %%a In (1,1,48) Do Set "bar=!bar!>" 
Set "n=0" 
For /L %%a In (1,1,23) Do Set/A n+=1 
Set "i=0" 
Echo(Processing files: 
For /L %%a In (1,1,23) Do (
    Set/A i+=1, percent=i*100/n, barLen=48*percent/100 
    For %%b In (!barLen!) Do Title !percent!%% !bar:~,%%b! 
    Echo(!i!- File%%a 
    Timeout 1 1>Nul) 
Title Press any key to exit . . . 
Timeout -1 1>Nul 

これを実行して、問題を解決してみてください。

関連する問題