2017-05-03 92 views
1

我想從Windows命令提示符啓動.ps1。我的Powershell腳本有一個路徑參數。這裏是我的命令行來啓動.ps1 powershell Set-ExecutionPolicy Unrestricted -scope process ; C:\\MyPowerShell.ps1 -Path \"C:\\Test for my script\test1.txt" 在MyPowerShell.ps1中,如果我寫入主機路徑,我會得到:C:\ Test。當第一個空格出現時,它會切斷我的字符串。 我怎樣才能得到我的完整路徑? Thx。Powershell參數:路徑中的字符串

+0

「我想從Windows命令提示符啓動.ps1。」爲什麼?打開PowerShell,然後運行你的腳本。您不需要Windows命令提示符(cmd.exe)。 –

+0

因爲我從Jenkins管道啓動它。 – Emile

+3

如果您可以啓動可執行文件,則不需要cmd.exe。只需使用適當的參數運行PowerShell;例如''powershell.exe -NoProfile -ExecutionPolicy Unrestricted -File C:\ MyPowerShell.ps1 -path「C:\ test for my script \ test1.txt」'。運行'powershell /?'以獲取有關如何使用其命令行的詳細信息。 –

回答

0

選項2: 不要逃跑路徑,而不是從什麼是通過刪除引號

$path2file = $path2file.replace('"',"").replace("'","") 

這將允許任何人把路(一個公認的做法常態)各地報價及你的應用程序去掉了引號,並將整個路徑放在一個變量中。如果路徑未被引用,那麼這些行不起作用。

如果實際文件路徑中包含引號(單或雙),將會失敗。

0

我把':-Path '\"C:\\Test for my script\test1.txt"'它工作。 Thx :)