前任:
cmd /C start C:\Users\Bob Builder\Desktop\New Folder\test.exe
我正在嘗試使用 cmd 啟動檔案,但由于路徑中有空格,因此 cmd 在 Bob 之后拋出錯誤。
錯誤:
“Windows 找不到 C:\Users\Bob。請確保您輸入的名稱正確無誤,然后重試。”
系統找不到檔案 C:\Users\Bob。
它只是無法接受空格。這讓我發瘋了,因為我被 C# 開箱即用的作業寵壞了。我對此知之甚少,我花了太多時間試圖弄清楚這一點。一些幫助將不勝感激。
uj5u.com熱心網友回復:
cmd /C start "C:\Users\Bob Builder\Desktop\New Folder\test.exe"
報價是你的朋友。有時甚至雙引號也是如此!
uj5u.com熱心網友回復:
為了將包含空格的路徑識別為單個路徑(引數),它必須被參考。
為了使可執行以在執行當前控制臺視窗,同步地,與它的連接到主叫殼流,它必須呼叫直接通過,不
start。
直接呼叫cmd.exe(僅"..."支持參考):
"C:\Users\Bob Builder\Desktop\New Folder\test.exe"
來自 PowerShell:
& 'C:\Users\Bob Builder\Desktop\New Folder\test.exe'
筆記:
PowerShell 還支持
'...'字串(單引號),如果您不需要變數擴展(字串插值),這些字串是比(雙引號)字串更可取的逐字字串"..."- 請參閱概念about_Quoting_Rules幫助主題。對于語法的原因,PowerShell需要使用
&時,呼叫運算子來呼叫的指令參考和/或包含變數參考-看到這個答案的詳細資訊。
相比之下,使用startin cmd.exe/ Start-Processin PowerShell(其內置別名也是start)在新視窗(在 Windows 上)中異步啟動可執行檔案,沒有(直接)捕獲啟動的可執行檔案輸出的能力:
來自cmd.exe:
start "title" "C:\Users\Bob Builder\Desktop\New Folder\test.exe"
筆記:
指定
"title"-即一個自我選擇的(控制臺)視窗標題-是必需的語法原因在這種情況下:如果沒有它,雙引號的路徑本身將被解釋為視窗標題,以及-暗示-可執行檔案來啟動將是另一個cmd.exe實體。請注意,如果您以這種方式啟動GUI應用程式,則 title 引數無關緊要,因為不會創建新的控制臺視窗。
相反,如果您啟動由雙引號路徑指定的控制臺應用程式,因此必須使用標題引數,請注意這""將導致新視窗沒有標題。
來自 PowerShell(引數-FilePath是位置隱含的):
Start-Process 'C:\Users\Bob Builder\Desktop\New Folder\test.exe'
筆記:
Start-Process它不支持指定視窗標題,所以你可能需要呼叫cmd.exe的內部start,該命令(或不被支持的其他功能Start-Process,如指定行程的優先級)。要解決報價問題,呼叫
cmd.exe的start通過將整個從PowerShell的start命令作為一個字串到cmd /c:cmd /c 'start "title" "C:\Users\Bob Builder\Desktop\New Folder\test.exe"'
uj5u.com熱心網友回復:
好像 cmd 對我不起作用。Powershell 使用此腳本:
$env:Path = ";C:\Users\Bob Builder\Desktop\New Folder\"
test.exe
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/323338.html
