バッチファイルを使用してコマンドプロンプトを複製しようとしています。私の現在のコードは以下の通りです。バッチファイルを使用してコマンドプロンプトを複製する
@echo off
title Command Prompt
:LOOP
set /p COMMAND="%CD%>"
title Command Prompt - %COMMAND%
call %COMMAND%
echo.
title Command Prompt
goto LOOP
しかし、私には1つの問題があります。私がプログラムを呼び出す場合(gpedit.msc
など)、バッチファイルは、プログラムの復帰を待つことなく、通常のコマンドプロンプトが返ってくるまで、プログラムが戻るまで待機します。
コマンドがプログラムであるかどうかをテストして、start
コマンドを使用する方法を教えてください。
これは、CMDだけでは不可能です。 CMDがプログラムの終了を待つか待機しないかは、プログラムがGUIベースであるかテキストベースであるかによって決まります。例: 'notepad.exe'と' chkdsk.exe'です。 CMDはこれを検出するコマンドを提供していません。 – Jay
@Jayこれは残念です。しかし、ありがとう。 – mc10
まあ、ちょっとハードなものです。 EXEファイルのヘッダー(PEファイルフォーマットのヘッダー)を解析して、それがGUIプログラムかテキストプログラムかを調べます。これは、VBScriptをEXEバイナリ(バイトレベルで手動で)を読み取って結果を報告するヘルパーとして使用することができます。 'DEBUG.EXE'スクリプトを使ってもできますが、これは面倒です。 – Jay