PowerShell выполняет exe с аргументами - PullRequest
0 голосов
/ 22 октября 2018

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

$now     = Get-Date -format "MM_dd_yyyy"
$onepath ="C:\Program Files (x86)\GoFileRoom\IWMUploadDocuments\logs\"
$scpath  = "F:\Program Files\NSClient++\scripts\"
$onefile = "IWMUploadDocumentsLog$now.txt"
$script  = "check_log3.exe"

& "$scpath$script" -p "Error Logging into GFR" -l "$onepath$onefile" -c 1 
Write-Output "$onepath$onefile"

Вот вывод:

PS C:\Windows\system32> F:\Program Files\NSClient++\scripts\onesource.ps1
    Cannot read 'C:\Program'
    C:\Program Files (x86)\GoFileRoom\IWMUploadDocuments\logs\IWMUploadDocumentsLog10_22_2018.txt

1 Ответ

0 голосов
/ 22 октября 2018

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

& "$scpath$script" -p "Error Logging into GFR" -l "`"$onepath$onefile`"" -c 1

Или попробуйте splatting аргументы:

$params = '-p', 'Error Logging into GFR',
          '-l', "$onepath$onefile",
          '-c', 1

& "$scpath$script" @params
...