2009-01-14 11 views
8

Wydaje się, że mogę uciec argumenty wiersza polecenia przy użyciu pojedynczych lub podwójnych cudzysłowów:Jak uciec od argumentów wiersza poleceń w Powershell?

PS C:\> echo Hello World 
Hello 
World 
PS C:\> echo 'Hello World' 
Hello World 
PS C:\> echo "Hello World" 
Hello World 

Ale jest jeszcze coś, czego nie może dowiedzieć się, co jest, gdy chcesz uruchomić plik wykonywalny z katalogu, który zawiera w tym miejscu:

PS C:\> c:\program files\test.exe 
The term 'c:\program' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again. 
At line:1 char:11 
+ c:\program <<<< files\test.exe 
PS C:\> 'c:\program files\test.exe' 
c:\program files\test.exe 
PS C:\> "c:\program files\test.exe" 
c:\program files\test.exe 
PS C:\> 

Jak mogę uruchomić program Power Shell, aby uruchomić powyższy plik wykonywalny?

Odpowiedz

11

Użyj tego:

. "c:\program files\test.exe" 

Właściwie jeszcze lepszym rozwiązaniem byłoby:

Invoke-Item "c:\program files\test.exe" 

lub używając aliasu:

ii "c:\program files\test.exe" 

Korzystanie Invoke-Item oznacza, że ​​właściwe okna obsługa plików będzie używana. Tak więc dla exe go uruchomi. Na przykład dla pliku .doc otwierałoby to słowo.

Oto jedna z najłatwiejszych linii poleceń PoSH. Spróbuj:

ii . 
+0

Brillant! Dzięki –

17

Spróbuj wprowadzić znak ampersand przed poleceniem. Na przykład

& 'C:\Program Files\winscp\winscp.exe' 
+0

Jest to poprawniejsza odpowiedź, ponieważ po prostu informuje analizator składni o interpretacji następnego tokena w trybie komend, chociaż wygląda jak ciąg znaków. –

Powiązane problemy