2017-08-13 43 views
0
cd "..\..\..\Sound" 
start "" "mt32.exe" 
timeout /T 5 /nobreak > NUL 
cd ".\" 
SCIV.exe 

如果您完全熟悉DOSBox,我正在使用DOSBox前端(D-Fend Reloaded)來啓動包含此代碼的.bat文件。什麼是應該發生的是這樣的:爲什麼我的批處理文件在等待超時命令之前繼續運行?

  1. 批處理文件更改目錄,並啓動mt32.exe(這是打開了一個MT-32合成的AutoHotkey的腳本)
  2. 批處理文件等待5秒鐘
  3. 然後
  4. 批處理文件轉換至其自己的目錄,並啓動SCIV.exe(這是遊戲的exe空間搜尋III

什麼實際上情況是,開始mt32.exe之後,右吹過去超時命令和s撻遊戲。我想知道D-Fend Reloaded(前端)是否預加載批處理文件並按照自己的條件執行它?

無論如何,我想知道是否有任何方法可以實際執行超時並確保它在遊戲啓動之前發生;這相當關鍵。關鍵是確保mt32合成器有足夠的時間在遊戲開始之前完全初始化。

+0

我不是在批處理文件的那麼好,但(1)你並不需要更改目錄之前的應用程序名稱添加它:'」 .. \。 。\ .. \ Sound \ mt32.exe「'(2)最好在後臺啓動'mt32.exe':'start/d' - HTH;)。 –

+1

嘗試'超時/ T 5/nobreak 0 >> CONIN $> NUL'。如果DOSBox不使用普通控制檯,則timeout.exe失敗並立即返回。如果有一個隱藏的控制檯,則後者命令會嘗試將stdin重定向回到其輸入緩衝區CONIN $。它需要讀寫訪問權限,所以它使用append模式(即'>>')。 – eryksun

+1

如果@eryksun解決方案無法正常工作,請嘗試明確指定「timeout」可執行文件的路徑(通常爲c:\ windows \ system32 \ timeout.exe),以防發生路徑異常。 – Magoo

回答

1

這可能工作:

ping 127.0.0.1 -n 6 >nul 
+0

@Mofi,Windows 7+不再依賴hosts文件來定義localhost。默認主機文件只包含註釋。 localhost是通過DNS解析查找的,如果它沒有在hosts文件中定義,那麼我認爲它會對該值進行硬編碼。當然,它仍然可以配置錯誤。 – eryksun

+0

Thx Mofi,現在修復。 – Kriss7475

相關問題