通过 windows 任务计划程序将参数传递给 powershell 脚本不起作用
Passing parameters through windows task scheduler to powershell script not working
创建了 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
的情况下删除所有文件。也尝试过使用文件选项,没有任何效果。
在脚本开头声明 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"
创建了 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
的情况下删除所有文件。也尝试过使用文件选项,没有任何效果。
在脚本开头声明 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"