gpt4 book ai didi

powershell - 如何检查项目大小并在 Powershell 中超过某个阈值时移动它们

转载 作者:行者123 更新时间:2023-12-03 14:02:27 25 4
gpt4 key购买 nike

我目前正在编写一个 Powershell 脚本,该脚本应该执行以下操作:检查文件夹中的所有项目,如果有任何项目超过一定大小(比如 10MB),则创建一个文件夹(名为“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 中的值应该是一个 int 对吧?我的 if 条件应该查看值是否大于 0(我也尝试过使用“0”)。

如有任何帮助,我们将不胜感激!

问候,格菲

最佳答案

$aGenericMeasureInfo 类型的实例,不能与零(整数)进行比较。使用 $aCount 属性与零进行比较:

if ($a.Count -gt 0){
mkdir "$p\tooBig"
}

此外,我注意到 Measure-Object 中有一个空格需要删除。我猜那只是帖子中的错字。

关于powershell - 如何检查项目大小并在 Powershell 中超过某个阈值时移动它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52220777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com