題 為什麼Windows 7上的.BAT文件沒有正確暫停?


我一直在玩我的計算機上編寫批處理文件一段時間,我很困惑為什麼PAUSE不像我想的那樣工作(也許我只是做錯了idk,只是真的很困惑)。

基本上我有:

@echo off
echo Hello!
pause
echo Hi again!
pause
echo HEY HEY!!
pause

當它運行時,我得到:

Hello!
Press any key to continue...

然後我只按一個鍵,這會發生:

Hi again!
Press any key to continue...
HEY HEY!!
Press any key to continue...

我不明白為什麼它會跳過第二次PAUSE ...我注意到如果我這樣做:

@echo off
echo Hello!
pause
echo Hi again!
pause
pause
echo HEY HEY!!
pause

然後它會暫停“再次嗨!”反對在沒有暫停的情況下執行它(但它會連續兩次打印“按任意鍵繼續......”)

我真的迷路了,直到我知道為什麼這樣做才能繼續我的生活:


5
2017-10-31 16:45


起源


它對我來說是預期的(在Windows 7中),你確定你沒有鍵盤問題嗎?如果將echo參數包裝在引號中,它的工作方式是否有所不同? (即:迴聲“你好!”,迴聲“嗨再見”等) - Ƭᴇcʜιᴇ007
讓我現在試試......我沒有鍵盤問題,它只會跳過那個暫停,而不是其他 - Ryan Bollinger
你知道,我覺得很愚蠢,我點擊其他任何鍵然後向下箭頭使它工作正常..... jeez我不敢相信我已經花了2個小時試圖弄清楚這一點沒有xD - Ryan Bollinger
是的,擊中任何箭頭鍵對我來說也是如此,你也看到了。接得好。養成使用Enter的習慣。 ;) - Ƭᴇcʜιᴇ007


答案:


它按預期工作。該 pause 聲明只是等待輸入。唯一的轉變是隱藏它正在等待按鍵的事實。

當我運行你顯示的最後一個批處理文件時,我看到了這個:

C:\Users\asdf\Desktop>more test.bat
@echo off
echo Hello!
pause
echo Hi again!
pause
pause
echo HEY HEY!!
pause

C:\Users\asdf\Desktop>test
Hello!
Press any key to continue . . .
Hi again!
Press any key to continue . . .
Press any key to continue . . .
HEY HEY!!
Press any key to continue . . .

所以我發現很難理解你的要求......


0
2017-10-31 16:49



這並不能解釋為什麼跳過第二個陳述。 - Jim G.
在“再次嗨”之後,我不需要連續2次PAUSE語句。我基本上都在問為什麼1 PAUSE不起作用。 - Ryan Bollinger
這就是它在Windows 7上的運行方式...... - Canadian Luke
@JimG。從OP上面的評論中可以看出,這是預期的行為 - Canadian Luke