Как избежать аргументов командной строки на PowerShell? - PullRequest
8 голосов
/ 14 января 2009

Похоже, что я могу избежать аргументов командной строки, используя одинарные или двойные кавычки:

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

Но я все еще не могу понять, когда вы хотите запустить исполняемый файл из каталога, в котором есть пробел:

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:\>

Как заставить PowerShell запустить исполняемый файл выше?

Ответы [ 2 ]

19 голосов
/ 14 января 2009

Попробуйте поставить амперсанд перед командой. Например

& 'C:\Program Files\winscp\winscp.exe'
11 голосов
/ 14 января 2009

Используйте это:

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

На самом деле, еще лучшее решение было бы:

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

или используя псевдоним:

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

Использование Invoke-Item означает, что будет использоваться правильный обработчик файлов Windows. Так что для EXE-файла он будет запускаться. Например, для файла .doc он будет открыт в Microsoft Word.

Вот одна из самых удобных командных строк PowerShell. Попробуйте:

ii .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...