Как выполнить команды PowerShell, не заключая аргументы в кавычки?

780
kem

Когда я пытаюсь запустить программу с параметром командной строки из командной строки PowerShell, PowerShell заканчивает манипулирование этим параметром. Почему это происходит? Есть ли способ остановить это, кроме включения опции в кавычки?

Например, из командной строки PowerShell:

PS Microsoft.PowerShell.Core\FileSystem::\\\\mach\share> .\myprog.exe -file=input.txt 

myprog.exe заканчивает тем, что получил два аргумента:

  1. -file = вход
  2. .текст

Мне нужно запустить его так:

.\myprog.exe "-file=input.txt"

или же

.\myprog.exe '-file=input.txt'

заставить его быть одним аргументом. Никакая другая оболочка не делает этого.

4

1 ответ на вопрос

2
sgmoore

This is related to the first character of the parameter, ie the -

For example file=input.txt, /file=input.txt and --file=input.txt will probably all work, but not -file=input.txt.

Quite a lot of programs would accept /file=input.txt inplace of -file=input.txt which may allow a workaround.