2017-03-08 10 views
1

私はフォルダ内のすべての.txtファイルをマージし、非常に簡単なスクリプトを持って終了したときにループから抜け出す:バッチスクリプトは、別のバッチが怒鳴るよう、

これは仕事をしていませんし、印刷しない
copy /b *.txt Merged_output.txt >nul 

これは大丈夫です(マージするすべてのファイルの名前を表示したくありません)。

しかし、すべての.txtファイルをマージするまでスクリプトはまだ実行されています。 私はマージするファイルがたくさんありますが(8000+)、これには時間がかかります。まだ実行されているかどうかはわかりません。

私はオーバープリントするループを有する別のバッチスクリプトを作成することを考え何度も何度もこのメッセージた

:開始することが可能である場合、私は思っていた

@echo off 
cls 
:start 
cls 
echo Running... 
goto start 

:実行中...怒鳴るなど 何かLoop Scriptから、実行中のメッセージを印刷し、merging.batスクリプトを実行した後で、マージが完了した後に停止させます。

他の提案が最も高く評価されます。

+0

重複する質問ではありませんか?あなたはこれを見ましたか?: http://stackoverflow.com/questions/22165412/check-if-another-batch-file-is-still-running –

答えて

2

別のバッチファイルは必要ありません。代わりに、出力を隠すマスクそれ

@echo off 
    setlocal enableextensions disabledelayedexpansion 

    set monitor=cmd /q /v /e /c"for /l %%a in() do set/p.=&&echo !time! working || exit" 

    copy /b *.txt merged_output | %monitor% 
    echo %time% done 

また各ラインを読み出し、現在時刻とリテラルworking印刷ループ別cmdインスタンスにだけパイプcopyコマンドの出力を。

関連する問題