2010-11-26 35 views
1

cmdコンソールでいくつかの結果を表示するDOSバッチファイルがあります。ユーザーがEnterキーを押してプログラムを実行するか、キーボードの他のキーを押して終了するようにします。DosバッチファイルでEnterキーを押してプログラムを開くか他のキーを押してバットを終了します

私はオプション/選択肢を使いたくありません。この場合、ユーザーは少なくともアクションを確認して設定する必要があるためです。

例: cmdコンソールの最後には、次のようなものがあります。 abc.exeを開くには、Enterキーを押すか、キーボードの任意のキーを押して終了してください。

ありがとうございます!

答えて

3

この

@ECHO OFF 
SET Choice= 
SET /P Choice=Press enter to open abc.exe (and something else to quit) 
IF "%Choice%"=="" GOTO Start 
GOTO End 
:Start 
echo abc.exe about to start 
abc.exe 
:End 

EDITような何かを:あなたが入力した押さずに、単に「任意のキーを」したい場合は、これはDOSのスクリプト言語では不可能ですが、あなたはあなたのためにそれを行うだろう少しexeファイルユーティリティを書くことができます。ここで

は、それがどのように見えるかです:あなたは "入力" を押すと

C:\Users\hol>test 
Press enter to open abc.exe (and something else to quit) 

し、我々が得る:

C:\Users\hol>test2 
Press enter to open abc.exe (and something else to quit) 
abc.exe about to start 
'abc.exe' is not recognized as an internal or external command, 
operable program or batch file. 
C:\Users\hol> 

私は、エラーメッセージがあるabc.exeしていません。周り

C:\Users\hol>test2 
Press enter to open abc.exe (and something else to quit)x 

他の方法は、基本的にセット/ pが、それはちょうどそれが空の文字列ですその後、入力されており、私たちはそう始めることができたときに、「選択」の値を指定するには、ユーザーに尋ねる

C:\Users\hol>test2 
Press enter to open abc.exe (and something else to quit)x 

C:\Users\hol> 

を与えます私たちは終わります。あなたの好みに合わせて変更してください。以下のバッチファイルが正確に何をしたいんだろう

+0

あなたのソリューションに感謝しますが、このようにしてユーザーは何かを入力してからEnterキーを押して終了する必要がありますが、これは必須ではありません。終了するには、ユーザーが任意のキーを押すとすぐに終了する必要があります。解決策があれば教えてください。 – user521875

+0

このコードを試しましたか?それをテストしてください。ユーザーが単にenterを押すと、プログラムはabc.exeで始まります。ユーザーが何かを入力すると、プログラムは終了します。 – hol

+0

私はあなたに試験結果を加えました。 – hol

1

@rem ======================================== 
    @rem GETKEY.BAT - Written by Paul Tomasi 2010 
    @rem 
    @rem Waits for keypress. Returns key value 
    @rem ======================================== 
    @echo off 
     set /p .=Press ENTER to open abc.exe (and something else to quit): <nul 
     call :getkey 
     if %errorlevel% equ 13 start /b /wait abc.exe 
    exit /b 


    ::--------------------------- 
    :: GETKEY 
    ::--------------------------- 
    :getkey 
     (
     echo a 
     echo mov ah, 08 
     echo int 21 
     echo mov ah, 4c 
     echo int 21 
     echo. 
     echo rcx 
     echo 08 
     echo n getkey.com 
     echo w 
     echo q 
    )>script 
     debug<script>nul 
     call getkey.com 
    goto :eof 

DOSのバージョンが「SET/P」オプションをサポートしていない場合は(次の行に落下カーソルを抑制するだけで使用)、この行を単にECHO文で置き換えます。

バッチファイルをまっすぐにドロップしたい場合は、 '/ wait'を省略することができます。

関連する問題