PowerShell执行带有参数的exe

时间:2018-10-22 15:34:26

标签: powershell spaces

我写了一个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 :(得分:0)

在我看来,您需要在参数-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