通过Windows Task Scheduler将参数传递给Powershell脚本不起作用

时间:2019-10-14 06:42:00

标签: powershell task scheduler

创建了Powershell脚本,该脚本从X天之前的文件夹中删除文件(将X作为参数传递)并在任务计划程序中进行了安排。 以下是任务计划程序中“操作”下“添加参数”选项卡中提供的命令:

-Command "& 'C:\Temp\Test.ps1' -DaysOld '-200'"

Test.ps1:

Get-ChildItem -Path "/Temp" -File | Where-object {($._LastWriteTime lt (Get-Date).AddDays($DaysOld))| Remove-Item 

以上操作将删除所有文件,而不考虑传递的值-200。还尝试了File选项,什么都没有。

1 个答案:

答案 0 :(得分:0)

在脚本的开头声明params部分。好tutorial here

现在,脚本需要类型为integer的名为“ DaysOld”的参数。

somefile.ps1:

param(
    [Parameter(Mandatory=$True,Position=1)]
    [int]$DaysOld = 0
)

Write-Host $DaysOld 

用法:

powershell.exe "& '.\somefile.ps1' -DaysOld -200"