В настоящее время я работаю над сценарием Powershell, который должен выполнять следующие действия:
Проверьте все элементы в папке, если есть элементы более определенного размера (скажем, 10 МБ), создайте папку (с именем «toobig») и переместите эти элементы туда.
Вот мой сценарий:
function delbig {
param (
[parameter (Mandatory=$true)]
$p
)
$a= Get-ChildItem $p | Where-Object {$_.Length -gt 10000000} | Measure- Object
$a.count
if ($a -gt 0){
mkdir "$p\tooBig"
}
"$([int]$a)"
}
delbig
Я выяснил, как перемещать элементы и как создать папку, но мое условие if, чтобы решить, следует ли запускать действия, выдает мне следующую ошибку:
Cannot compare "Microsoft.PowerShell.Commands.GenericMeasureInfo" because it is not IComparable.
At C:\Powertest\movbig.ps1:14 char:1
+ if ($a -gt 0){
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : NotIcomparable
Cannot convert the "Microsoft.PowerShell.Commands.GenericMeasureInfo" value of type "Microsoft.PowerShell.Commands.GenericMeasureInfo" to type "System.Int32".
At C:\Powertest\movbig.ps1:20 char:4
+ "$([int]$a)"
+ ~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [], RuntimeException
+ FullyQualifiedErrorId : ConvertToFinalInvalidCastException
Значит, значение в $ a должно быть целым, верно? И мое условие if должно выглядеть, если значение больше 0 (я пробовал также с "0").
Любая помощь будет принята с благодарностью!
С уважением, Герфи