次のコードを実行すると、「taskkill was expected」と表示されます。 %stop%の値を設定する前にプログラムが終了します。このエラーを修正するにはどうすればよいですか?バッチコマンドが期待されない
@echo off
set ucs=ucs.exe
cls
echo.
echo Check %ucs%...
tasklist /FI "IMAGENAME eq %ucs%" 2>NUL | find /I /N "%ucs%">NUL
if %errorlevel%==0 (
echo %ucs% is running!
echo You need to stop it before editing ucsdb
echo 1 - Stop
echo 0 - Menu
set /p "stop=Stop %ucs%?"
if %stop%==1 taskkill /im %ucs% /t && goto sqlitebrowser
if %stop%==0 goto sqlitemenu
if not %stop%==1 if not %stop%==2 echo Option "%stop%" not exist! && timeout /t 2 /nobreak >NUL && goto sqlitemenu
) ELSE (
echo %ucs% is not running
echo Loading SqliteBrowser...
timeout /t 2 /nobreak >nul
goto sqlitebrowser)
コード編集:!!
setlocal EnableDelayedExpansion
cls
echo.
echo Check %ucs%...
pause
tasklist /FI "IMAGENAME eq %ucs%" 2>NUL | find /I /N "%ucs%">NUL
if %errorlevel%==0 (
echo %ucs% is running!
echo You need to stop it before editing ucsdb
echo 1 - Stop
echo 0 - Menu
set /p "stop=Stop %ucs%?"
if !stop!==1 taskkill /im %ucs% /t && goto sqlitebrowser
if !stop!==0 goto sqlitemenu
if not !stop!==1 if not !stop!==0 echo Options "!stop!" not exist! && timeout /t 2 /nobreak >nul && goto sqlitemenu
...
ない場合は停止== 1でない場合はオプションエコー== 0を停止!! "ストップ!"存在しない!が正しく
変数 '%stop%'が定義されていないことを確信しています... – aschipfl
[バッチファイルの遅延展開の例]の可能性があります(http://stackoverflow.com/questions/10558316/example-of- delay-in-batchファイル) –
%stop%の値を設定する前に、プログラムが終了します。 – Blank517