如何使用powershell脚本中的参数调用可执行文件

Tar*_*ora 5 powershell powershell-2.0

我正在寻求有关如何使用powershell脚本调用具有特定参数的cmd的帮助.到目前为止,我所写的内容如下,但它给出了一条错误消息,说明$ _cmd无法识别.

我试图将日期和日期传递给一个exe ...从你可以看到的日期到今天需要 - 1和现在应该是现在.可执行文件的路径是D:\ DataService,这就是我在脚本中提前设置路径的原因.

    Write-Host "Get data from service"

$path ="D:\DataService"

Push-Location $path
$Date = Get-Date
$DateFrom = $Date.ToString("yyyy-MM-dd HH:mm:ss")
$DateTo = $Date.AddDays(-1).ToString("yyyy-MM-dd")
$_cmd = "ReportGen.exe -ReportType Data -DateFrom $DateFrom $DateTo"

%$_cmd%
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

Ans*_*ers 10

不要创建命令字符串.只需使用call operator(&):

Write-Host 'Get data from service'

$path = 'D:\DataService'

Push-Location $path

$Date     = Get-Date
$DateFrom = $Date.ToString('yyyy-MM-dd HH:mm:ss')
$DateTo   = $Date.AddDays(-1).ToString('yyyy-MM-dd')

& ReportGen.exe -ReportType Data -DateFrom $DateFrom $DateTo
Run Code Online (Sandbox Code Playgroud)

  • @JasonShirk这可能没有必要,但也没有什么坏处,而且我认为每当您调用外部程序时使用它都是一种很好的风格。 (2认同)
  • 当他们尝试 `$exe = "some.exe"; 时,他们可能会更加困惑。第一次使用 $exe /with /args` 而不是 `some.exe /with /args`。 (2认同)