Используйте переменную powershell для выполнения программы по пути к файлу в переменной

Я хочу сохранить абсолютный путь к файлу в переменной оболочки мощности и использовать его для выполнения программы с аргументами. Я хочу сделать это на сервере сборки, чтобы у меня была утилита на этом сервере сборки, используемая агентами сборки. Учти это:

$pathToExe = "C:\path\to\program.exe"

#build server does stuff in a working dir

$pathToExe arg1 arg2

Когда это выполняется, $ pathToExe не расширяется до своего значения. Вместо этого я вижу в журналах: «Неожиданный токен ‘arg1’ в выражении или инструкции».

Как правильно делать такие вещи в Power Shell? Я пробовал другой синтаксис с кавычками, но я не могу заставить его работать без жесткого кодирования пути к файлу, чего я пытаюсь избежать.

Я думаю, вам нужно будет использовать Start-Process   —  person Sly_Boots    schedule 10.10.2018

Как же так? Нравится? Start-Process $ pathToExe arg1 arg2   —  person Sly_Boots    schedule 10.10.2018

Вот пример того, что я использую в настоящее время. Я жестко запрограммировал свои аргументы, но можно использовать переменные. Start-Process -FilePath ($Firefox + "Firefox_62.exe") -ArgumentList ("-ms /INI=$Firefox" + "Firefox_Settings.ini") -Verbose -Wait -NoNewWindow   —  person Sly_Boots    schedule 10.10.2018

См. также:  Вывод подсетей Azure со ссылками на присоединенную виртуальную сеть, таблицу маршрутизации и NSG.
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Sly_Boots

    Вы должны использовать оператор вызова &. См. Примеры ниже:

    $executable = 'notepad.exe'
    $argument = 'E:\Temp\Test.xml'
    
    & $executable $argument
    & $executable 'E:\Temp\Test.xml'
    

    См. Get-Help about_Operators или это ссылка MSDN.

    Я не знал об этом методе. Мне это нравится. ss64.com/ps/call.html для получения дополнительной информации. Спасибо @Pawel Dyl person Sly_Boots; 10.10.2018

    Оператор call также называется оператором invocation. person Sly_Boots; 10.10.2018

    Спасибо! Это отлично работало, когда у меня был $ исполняемый файл = C: \ path \ program.exe. person Sly_Boots; 10.10.2018

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: