2016-03-29 37 views
1

Windows toplu iş (cmd) dosyasında uzun süren bir işlemin ilerlemesini yüzde cinsinden nasıl gösterebilirim? Bazı örnek kodları paylaşabilir misiniz? İşteToplu iş dosyası ilerleme yüzdesi

+0

Özel olarak işlemin ne olduğuna bağlıdır. –

+0

Evet, anlaşıldı. İşleminizi ayrık adımlara bölebilirseniz kolay olmalı. Daha fazla bilgi için cevabımı görün. –

cevap

0

nasıl ...

Not geçerli: Bu kod this cevabın biraz değiştirilmiş bir versiyonudur.

@echo off 

for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a" 

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

echo Done! 
exit /b 

:show_progress 
setlocal EnableDelayedExpansion 
set current_step=%1 
set total_steps=%2 
set /a "progress=(current_step * 100)/total_steps" 

set /p ".=Progress: !progress!%%!CR!" <nul 

if !progress! equ 100 echo. 

exit /b 
+0

"if! Progress" ifadesini belirtmenizi öneririm! EQU 100 'gerçek bir sayısal karşılaştırma yapmak için '==' dize karşılaştırmasını zorlar ... – aschipfl

+0

Evet iyi bir nokta! –

+0

Sadece her "setlocal" kelimesinin okunabilirlik açısından bir "endlocal" ile eşleşmesi için iyi bir kodlama uygulaması olduğunu söylüyorsunuz. @SandeepDatta '' cr! ''In değişken olarak depolanan satır aralığını çıktı akışına koyduklarını, ancak'% cr% 'değerinin çok da ilginç olmadığını. İkincisinin neden işe yaramadığını biliyor musun? –

İlgili konular