TIMEOUT不是cmd.exe
(Windows命令解釋器)的內部命令等FOR或DIR。
這是一個外部命令,它表示控制檯應用程序位於Windows目錄%SystemRoot%\System32
中。
上採用上面timeout
沒有文件擴展名並沒有完整路徑,Windows命令解釋程序首先會搜索當前目錄timeout.*
對具有環境變量PATHEXT列出的文件擴展名的文件。
如果沒有這樣的文件可以在當前目錄下找到,Windows命令解釋程序繼續在環境變量PATH 定義的目錄中PATHEXT列出的文件擴展名timeout.*
搜索。
在Windows Vista和更高版本的Windows的系統PATH與定義:
%SystemRoot%\system32;%SystemRoot%\system32;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
由於這個原因,通常是先找到%SystemRoot%\System32\timeout.exe
在批處理文件中使用剛剛timeout
。
但是,如果當前目錄中,有名字timeout.*
其在環境變量PATHEXT也列出的文件擴展名,或路徑的文件是由它把其他目錄路徑後開始,而不是安裝在本地或系統範圍的重新定義在最後附加它們,其中一個目錄也包含一個timeout.*
文件,Windows命令解釋程序運行此可執行文件或腳本。
使用批處理文件%SystemRoot%\System32\timeout.exe
,因爲這時Windows命令解釋器不能搜索該可執行文件,它不能發生錯誤timeout
被錯誤地執行,除了:
爲解決這一問題的建議環境變量SystemRoot
在本地被修改,這與操作相比是非常不可能的。
打開Windows 控制面板 - 系統 - 高級系統設置(在左邊藍色鏈接),選擇選項卡高級,點擊按鈕環境變量...,搜索在下半部中的列表系統變量爲路徑,選擇這個環境變量,點擊編輯,並將%SystemRoot%\system32
左邊或上面的所有目錄路徑(取決於Windows版本)移動到目錄列表的末尾。
請到修改系統PATH,在開始,而不是在有關Windows 系統PATH的這個錯誤變更結束追加他們插入自己的目錄路徑的應用程序或軟件捆綁的作者報告。
由於Magoo已經寫到:一個timeout.*
移植從Unix到Windows,因爲輸出幫助聲明的Windows計算機上明顯執行。要獲得Windows上命令的幫助,命令必須通過參數/?
執行,而不是在Unix上執行-h
或--help
。
超時仍在我的更新版本的Windows 10上的批處理文件中正常工作。也許嘗試添加-NOBREAK參數(只是冒險)或「超時/ T 7」 –
將其更改爲讀取'timeout.exe 7'或'「%__ APPDIR __%timeout.exe」7「如果它能正常工作,就像我期望的那樣,你可能會發現你的腳本或另一個名爲'timeout'的可執行本地文件帶有不同的擴展名導致你的問題。 _(運行Magoo給出的命令也應該確定這種情況)_。 – Compo