2
我做了這個只是作爲一個實驗出於興趣,在一些快速閱讀在線教程和SO問題。批處理文件的IF語句不起作用?
這是我創建的批處理文件。
@ECHO OFF
:input
SET /P typeofc="To Connect input Y and to Disconnect input N (Y/N): "
IF /I "%typeofc%"=="Y" goto yes
IF /I "%typeofc%"=="N" goto no
:yes
rasdial whatevernetwork
:no
rasdial whatevernetwork /DISCONNECT
然而,當我執行此,它運行在雙方和yes
的no
命令,無論給出的條件。試過也在做IF <condition> <command> ELSE <command>
,但後來它只是在輸入後退出,即使我在腳本的末尾添加了PAUSE
。
我在這做錯了什麼?
PS:我在Windows 7上執行這個32位
沒有什麼可以阻止後'RASDIAL whatevernetwork'執行,因此下一行會被執行(並且被忽略,因爲它是一個標籤),那麼下一行'rasdial whatevernetwork/DISCONNECT'將被執行。要停止執行,您可以使用'goto:eof'或'exit'。你的'if ... goto'語句本身在我的電腦上執行的很好。 (用'Y'做,只用'N'做第二個' – Stephan
如果你的輸入不是'Y'或'N',那麼'ras'命令都會運行。 – Stephan
是的,你是絕對正確的。問題是我在執行標籤後沒有寫任何東西,添加它們就解決了問題,再加上像你說的,除了'Y'和'N'之外的任何輸入只是執行下面的所有內容,所以我添加了'IF'語句檢查'N'到一個不同的標籤,跳進去,如果'Y'的語句返回false,然後再次調用':input',如果語句返回false。另外我發現爲什麼我的ELSE不起作用原來,你必須把真正的部分命令放在括號內。感謝幫助隊友。 – RocketRuwan