首页 > 解决方案 > 通过windows任务调度程序将参数传递给powershell脚本不起作用

问题描述

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

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

测试.ps1:

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

以上是删除所有文件而不考虑-200传递的值。也试过文件选项,没有用。

标签: powershelltaskscheduler

解决方案


params在脚本开头声明该部分。很好的教程在这里

现在脚本需要名为 'DaysOld' 类型的参数integer

一些文件.ps1:

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

Write-Host $DaysOld 

用法:

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

推荐阅读