[問題] [batch]條件式中設定變數
請教各位高手, 小弟要在if條件式中設定參數的值,
在輸入參數值為1的時候, 設定變數a=WAIT並顯示出來,
但一直無法成功顯示WAIT, 而是顯示ECHO 已關閉。
請教以下寫法有何錯誤? 謝謝
已找到解決方法:
@ECHO OFF下一行要加上 setlocal enabledelayedexpansion
ECHO %a% 改為 ECHO !a!
原本失敗的執行結果:
(base) PS C:\temp> ./new1.bat 1
========= Check Arguments: "1"
input=1
ECHO 已關閉。
原程式:
@ECHO OFF
ECHO ========= Check Arguments: "%*"
SET input=%1
ECHO input=%input%
IF "%input%" == "1" (
SET a=WAIT
ECHO %a%
) ELSE (
IF "%input%" == "2" (
ECHO 3
) ELSE ECHO 4
)
EXIT /B 0
修改後:
@ECHO OFF
setlocal enabledelayedexpansion
ECHO ========= Check Arguments: "%*"
SET input=%1
ECHO input=%input%
IF "%input%" == "1" (
SET a=WAIT
ECHO !a!
) ELSE (
IF "%input%" == "2" (
ECHO 3
) ELSE ECHO 4
)
EXIT /B 0
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.145.1 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1597048794.A.982.html
※ 編輯: touvictor (61.221.145.1 臺灣), 08/10/2020 16:53:00
※ 編輯: touvictor (61.221.145.1 臺灣), 08/10/2020 17:40:33
※ 編輯: touvictor (61.221.145.1 臺灣), 08/10/2020 17:43:18
Programming 近期熱門文章
PTT數位生活區 即時熱門文章