Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 复制文件,直到超过指定的大小_Powershell_Filesize_Get Childitem - Fatal编程技术网

Powershell 复制文件,直到超过指定的大小

Powershell 复制文件,直到超过指定的大小,powershell,filesize,get-childitem,Powershell,Filesize,Get Childitem,我需要将文件复制到文件夹中,直到它们超过指定的大小。我已经编写了以下脚本,但由于以下错误而失败: 无法比较“Microsoft.PowerShell.Commands.GenericMeasureInfo”,因为它不可IComparable。 在C:\33.ps1:8字符:1 +“{0:N2}”-f($colItems.sum/1024MB) 我做错了什么?在第一个do循环之后,将验证while条件。由于您已经枚举了所有文件,因此脚本将复制所有文件 如果达到限制,可以省略do while循环并中

我需要将文件复制到文件夹中,直到它们超过指定的大小。我已经编写了以下脚本,但由于以下错误而失败:

无法比较“Microsoft.PowerShell.Commands.GenericMeasureInfo”,因为它不可IComparable。 在C:\33.ps1:8字符:1 +“{0:N2}”-f($colItems.sum/1024MB)


我做错了什么?

在第一个do循环之后,将验证while条件。由于您已经枚举了所有文件,因此脚本将复制所有文件

如果达到限制,可以省略do while循环并中断foreach:

$files=Get ChildItem C:\source-Recurse |%{$\u.FullName}
$sum=0
$sizeLimitInGB=10
foreach($files中的文件)
{
$colItems=(Get ChildItem d:\target-recurse | Measure Object-property length-sum)
如果($colItems.sum/1GB)-gt$sizeLimitInGB)
{
达到极限。
}
复制项$file-递归D:\target
}
$files = Get-ChildItem C:\source -Recurse | % { $_.FullName }

foreach($file in $files) {
    do {

        Copy-Item $file -Recurse D:\target
        $colItems = (Get-ChildItem d:\target -recurse | `
                         Measure-Object -property length -sum)
        "{0:N2}" -f ($colItems.sum / 1024MB)
    }
    while ($colItems -le 10)
}