Параметр Invoke-Expression не используется - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть рабочий простой командный файл cmd:

D:\Software\MySoftware.exe --process MyConfig.tuc

Когда я пытаюсь выполнить репликацию в Powershell, используя либо выражение-вызов, либо оператор вызова '&', код выполняется, но журнал указывает его не поднял переключатель: --process MyConfig.tu c

Invoke-Expression "D:\Software\MySoftware.exe --process MyConfig.tuc"

или

& D:\Software\MySoftware.exe --process MyConfig.tuc

Редактировать: я обнаружил, что если вы пройдете полный путь .tu c файл, команда выполнена успешно.

Invoke-Expression "D:\Software\MySoftware.exe --process D:\Software\MyConfig.tuc"

1 Ответ

0 голосов
/ 24 апреля 2020

Мой вопрос спрашивал, почему Invoke-Expression требовался полный путь к файлу конфигурации, а пакетный файл - нет. Как указано в комментариях @compo, это, вероятно, связано с различиями в работе PS или cmd относительно относительных путей.

@ compo сделал более уместное замечание, что Start-Process будет лучшим решением, и я нашел, что это было. Мало того, что он работает, он имеет переключатели, хорошо подходящие для моих нужд, особенно - ждите, чего не делал изначально Invoke-выражение (я не мог подтвердить, может ли это подождать, есть предложения онлайн, которые могут).

Start-Process -FilePath D:\Software\MySoftware.exe -WorkingDirectory D:\Software  -ArgumentList "--process MyConfig.tuc" -wait
...