PowerShell: как запустить суммирование по размеру папки? - PullRequest
2 голосов
/ 13 февраля 2009

Моя цель - написать сценарий копирования, который перемещает файлы из одного каталога, «d: \ aa1», в «d: \ aa2» до указанного размера другого каталога, «d: \ bbb». Другими словами ... Я хотел бы скопировать все файлы из "d: \ aa1" в "d: \ aa2", пока размер "d: \ aa1" не станет того же размера или меньше, чем "d: \" БББ».

Пока у меня есть

$lmt = get-childitem d:\bbb  | measure-object -property length -sum 
do { get-childitem -path d:\aa1 | move-item -destination "d:\aa2" } while {measure-object {$_.sum -lt $lmt} 

Но синтаксис, похоже, не работает. Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 13 февраля 2009
Get-ChildItem -path d:\aa1 `
| % {if (((Get-ChildItem d:\aa2 `
| Measure-Object -Property Length -Sum).Sum + $_.Length) `
-lt (Get-ChildItem d:\bbb | Measure-Object -Property Length -Sum).Sum) `
{Move-Item $_.FullName d:\aa2}}
0 голосов
/ 15 апреля 2013

Должно быть свойство или метод для суммы каталога. Вы можете добавить опции к 'ls', как необходимо для скрипта ниже:

rv total;
foreach ($i in ((ls -Force) | Select Length)) {[int64]$total+=$i[0].Length};
$total /1GB;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...