簡體   English   中英

C ++ ShellExecute批處理腳本無法識別命令

[英]C++ ShellExecute batch script won't recognize commands

如標題所示,我正在嘗試通過“ ShellExecute”功能打開一個.bat文件。

它可以與非常基本的.bat腳本一起使用,例如“ hello world”腳本,但不能與其他包含用於運行游戲服務器的命令的腳本一起使用。 例如,以下是“殺人樓層1”服務器的批處理腳本:

ucc server KF-Mountainpass.rom?game=KFmod.KFGameType?VACSecured=true?MaxPlayers=6?GamePassword=genrl -log=server.log
PAUSE

請注意,當手動單擊該批處理時,該批處理效果很好,但是通過ShellExecute打開時會出現以下錯誤:

"ucc" is not recognized as an internal or external command, operable program or batch file.

我還在其他游戲服務器的其他批處理文件上進行了測試,結果相同。

所以,這是到目前為止我嘗試過但沒有奏效的列表:

ShellExecute(NULL, "open", "cmd.exe", "C:\\windows\\system32\\cmd.exe /C C:\\Cartella_Server\\Server_KF1\\System\\KF_Server_Launcher.bat", NULL, SW_SHOW);

ShellExecute(NULL,"open", C:\\Cartella_Server\\Server_KF1\\System\\KF_Server_Launcher.bat", NULL, NULL, SW_SHOW);

ShellExecute(NULL, "open", "cmd.exe", "/C C:\\Cartella_Server\\Server_KF1\\System\\KF_Server_Launcher.bat", NULL, SW_SHOW);

有什么解決辦法嗎?

在此先感謝您的時間 :)

ucc程序最有可能與啟動器腳本位於同一目錄中。 因此,當您單擊它時它可以工作,因為您的當前目錄與該文件位於同一目錄,但是在您運行程序時,當前目錄是不同的。

解決方案-根據https://msdn.microsoft.com/zh-cn/library/windows/desktop/bb762153(v=vs.85).aspx ,在第五個ShellExecute參數中提供適當的目錄

這是因為腳本正在加載到cmd.exe目錄中

為什么? 因為您沒有填寫工作目錄字段。

看看ShellExecute的第五個參數: https : //msdn.microsoft.com/zh-cn/library/windows/desktop/bb762153%28v=vs.85%29.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM