我正在尝试在计划的作业中传递切换参数。然而,无论我怎么尝试,开关都不能通过。这是要由排定作业调用的示例脚本:
Param([switch]$Log = $false)
if($Log)
{
Write-Host "It is on: $Log"
}
else
{
Write-Host "It is off: $Log"
}以下是我在创建作业时尝试传递开关的内容:
Register-ScheduledJob -FilePath "C:\Users\foo\Documents\Test.ps1" -Name "Test" -ArgumentList "-Log"
Register-ScheduledJob -FilePath "C:\Users\foo\Documents\Test.ps1" -Name "Test" -ArgumentList ("-Log")
Register-ScheduledJob -FilePath "C:\Users\foo\Documents\Test.ps1" -Name "Test" -ArgumentList (,"-Log")
Register-ScheduledJob -FilePath "C:\Users\foo\Documents\Test.ps1" -Name "Test" -ArgumentList @("-Log")
Register-ScheduledJob -FilePath "C:\Users\foo\Documents\Test.ps1" -Name "Test" -ArgumentList @(,"-Log")
Register-ScheduledJob -FilePath "C:\Users\foo\Documents\Test.ps1" -Name "Test" -ArgumentList @("-Log:$true")
Register-ScheduledJob -FilePath "C:\Users\foo\Documents\Test.ps1" -Name "Test" -ArgumentList @($true)..。和其他许多人
然后,我通过获取作业并运行它来测试作业:
$job = Get-ScheduledJob -Name Test
$job.run()但是,开关始终为false。-ArgumentList参数接受一个对象数组(https://docs.microsoft.com/en-us/powershell/module/psscheduledjob/register-scheduledjob?view=powershell-5.1)。但我不确定我做得对不对。
发布于 2019-09-23 18:06:23
好的,
在搜索了一段时间并做了一些尝试和错误的方法后,我发现这是可行的:
Register-ScheduledJob -FilePath "C:\Users\foo\Documents\Test.ps1" -Name "Test" -ArgumentList @($True)
显然,$true和$True是不同的……
谢谢你给我指路
https://stackoverflow.com/questions/58057766
复制相似问题