バッチ スクリプトは終了すると閉じます。これは、バッチ スクリプトがそのように機能するためです。スクリプトで実行するコードがなくなると、ウィンドウが閉じます。ウィンドウを開いたままにしておく場合はpause
、ダブルクリックする代わりにコマンドを使用するか、コマンド プロンプトからスクリプトを実行できます。
=
コマンドの最後にa がありませんset /p
。これが「コマンドの構文が正しくありません」というエラーの原因です。
enter
ユーザーが何も入力せずにヒットした場合に備えて、文字列を比較するときに引用符、括弧、またはその他の文字を使用することは、一般的に良い考えです。Serenity が述べたように、コマンドを使用するオプションがある場合は、choice
より堅牢であるため、それを使用してください。
引用符で囲む必要がある何かを開始する必要がある場合に備えて""
、コマンドの直後に置くことも良い習慣と考えられています。は、最初に遭遇する引用符で囲まれたものをウィンドウ タイトルと見なし、その後のすべてをコマンドと見なします。ご想像のとおり、これによりコードが壊れる可能性があります。start
start
要約すると、次のようになります。
@echo off
title Search Providers
cls
:home
echo [1] Google
echo [2] Bing
echo [3] Yahoo
set /p udefine=
:: Ideally there's some sort of error handling here as well
if "%udefine%"=="1" start "" www.google.com
if "%udefine%"=="2" start "" www.bing.com
if "%udefine%"=="3" start "" www.yahoo.com
pause