Извините, это сложно объяснить. У меня есть длинная, пайп и т.д. команда, как это:
param (
[alias("r")]
[Parameter(Mandatory = $false)]
[switch]$recurse = $false,
[...]
$allFiles = Get-ChildItem $folder | Where-Object { $_.CreationTime -ge [DateTime]::Now.AddHours($hoursOld) } |
ForEach-Object {
[...]
И есть еще один способ запустить Get-ChildItem, который с опцией -recurse . Я только знаю, как написать всю команду заново, но с опцией "-recurse", и заключить оба в if / else ...
Есть ли способ включить этот -recurse после gci, только если -r (параметр командной строки switch, псевдоним для $ recurse) равен $ True ?
например:
$allFiles = Get-ChildItem $folder -recurse | Where-Object { $_.CreationTime -ge [DateTime]::Now.AddHours($hoursOld) } |
ForEach-Object {
[...]
PS C:\PSScripts> $psversiontable
Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.42000
BuildVersion 6.3.9600.18728
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2