Передача параметров через планировщик задач Windows в сценарий powershell не работает - PullRequest
0 голосов
/ 14 октября 2019

Создан скрипт 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прошло. Также пробовал с опцией Файл, ничего не работает.

1 Ответ

0 голосов
/ 14 октября 2019

Объявите раздел params в начале вашего скрипта. Хороший учебник здесь .

Теперь скрипт ожидает параметр с именем 'DaysOld' типа integer.

somefile.ps1:

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

Write-Host $DaysOld 

Использование:

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