[問題] bat 關於括號請教

看板Windows作者 (ltytw)時間6年前 (2018/05/14 14:21), 6年前編輯推噓2(205)
留言7則, 3人參與, 6年前最新討論串1/1
發文前請詳閱↓↓↓↓ 若你是發表Windows 10相關問題 請一併PO出版本相關資訊 "Windows鍵" + "R" → 輸入 "winver" 並將上面的版本資訊打到文章內 若發表Windows 10問題文章 沒有將版本號打到文章內者 一律刪文處理 作業系統:Windows 8.1 Service Pack: 發生問題頻率:就這個問題 是否有做Windows Update:無 問題內容: 不確定其他版本的系統是否也這樣 我在8.1寫的批次檔如下 ---------------------------------- set /p askdisconnect=您是否同意由本安裝檔為您中斷網路? (y/n): if not !askdisconnect!==n ( echo 正在中斷網路連線... (防止驗證器重新下載這些資料) ipconfig /release echo. echo 正在啟動 WMP11 的安裝程式... chdir wmp11_setup_temp start /wait wmp11-windowsxp-x86-ZH-TW.exe echo. echo 如果你安裝完畢了。 echo 請按下任意鍵恢復網路連線。 pause > nul echo. echo 正在恢復網路連線... ipconfig /renew echo. echo 完成。 pause exit ) else ( echo 正在等待您自行中斷網路連線... echo 完成後請... pause echo. echo 正在啟動 WMP11 的安裝程式... chdir wmp11_setup_temp start /wait wmp11-windowsxp-x86-ZH-TW.exe echo. echo 如果你安裝完畢了。 echo 請自行重新啟用網路連線。 echo 完成。 pause exit ) ---------------------------------- 在跑的時候好像把不該讀進來的括號讀進來了 (紅色標示) 所以在條件判斷的時候都無法跳去執行else之後的程式碼 如圖 https://i.imgur.com/Vy9txvR.png
請問除了把那一行的括號換成中括號以外 還有什麼可能 可以繼續維持使用小括號 又不會讓這個問題跑出來呢? -- 我老婆 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.231.30.16 ※ 文章網址: https://www.ptt.cc/bbs/Windows/M.1526278890.A.4A0.html ※ 編輯: ltytw (125.231.30.16), 05/14/2018 14:25:39

05/14 14:58, 6年前 , 1F
用雙引號包起來,例如: echo "正在...(防止...)"
05/14 14:58, 1F

05/14 15:00, 6年前 , 2F
通常來說,字串一律使用雙引號包起來,避免誤判
05/14 15:00, 2F

05/14 15:00, 6年前 , 3F
檔名/資料夾名稱有空格也必須這麼做
05/14 15:00, 3F

05/14 15:05, 6年前 , 4F
好的 看來有必要時
05/14 15:05, 4F

05/14 15:05, 6年前 , 5F
echo也要雙引號了
05/14 15:05, 5F

05/14 15:05, 6年前 , 6F
我寫了那麼久的bat都不把echo加雙引號 這次有吃到鱉
05/14 15:05, 6F

05/15 07:02, 6年前 , 7F
^)
05/15 07:02, 7F
文章代碼(AID): #1Q-IhgIW (Windows)