Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Создание в имени папки с подкаталогами подпись с размером этих папок и подпапок (http://forum.oszone.net/showthread.php?t=217547)

750IL 09-10-2011 22:28 1769685

Создание в имени папки с подкаталогами подпись с размером этих папок и подпапок
 
Вложений: 1
Здравствуйте помогите пожалуйста воплотить мечту в реальность путём создания в имени папки с подкаталогами этой папки подписи с размером этих папок и подпапок, желаемый вид вложен в файл
до: папка с названием "Сериалы" после: "Сериалы [9,33 GB ↓]
заранее спасибо за помощь.

Kazun 09-10-2011 23:35 1769739

На PowerShell:

Код:

Get-ChildItem 'C:\Films' | Where-Object {$_.PsIsContainer} | Rename-Item -NewName {
        $sum = " [{0:F2} GB]" -f ((Get-ChildItem $_.fullname -Force -Recurse  | Measure-Object Length -Sum).Sum/1gb)
        $_.fullname + $sum.replace(".",",")       
} -PassThru -WhatIf

Посмотреть вывод и если удовлетворяет,убрать параметр -WhatIf.

750IL 10-10-2011 09:40 1769875

Kazun огромное спасибо! Столкнулся с такими проблемами как: подпапки он не именует, созданные ранее метки с размером он не перезаписывает, если я допустим пополнил каталог очередным фильмом, то при выполнении скрипта, размер не обновится.

Kazun 10-10-2011 15:41 1770136

Поправил скрипт,для обновления меток,но подпапки именовать не будет.

Код:

Get-ChildItem -LiteralPath 'C:\Films' | Where-Object {$_.PsIsContainer} | Foreach {
        $sum = (" [{0:F2} GB]" -f ((Get-ChildItem -LiteralPath $_.fullname -Force -Recurse  | Measure-Object Length -Sum).Sum/1gb)).replace(".",",")
       
        if($_.name -match " \[.+ GB]"){
                if ($matches[0] -ne $sum){
                        $_.MoveTo(($_.fullname -replace [regex]::Escape($matches[0]),$sum))
                }
        }
        else {
                $_.MoveTo($_.fullname + $sum)
        }
}


Iska 10-10-2011 16:48 1770187

750IL, а какова глобальная цель добавления размера содержимого в имя папки? Если просто для «посмотреть» — есть иные практичные способы.

750IL 10-10-2011 17:16 1770212

Существует локальная сеть, стоит сервер, на этом сервере расшаренна папка "Сериалы", с правами на изменение по сети, т.е человек находящийся в сети заходит на сервер, заливает в эту папку фильм, требуется чтобы все юзеры сети заходящие ко мне на сервер видели размер папки, в том числе и я. Также чтобы этот скрипт обновлял размер моего контента каждые 15-30 минут, это реализуемо?, прошу помощи всех кто в этом дыбает, чтобы работало всё без лишнего гемора. Спасибо

Ещё такой вопрос
Возможно ли сделать добавление в квадратные скобки размера, к примеру есть папка с именем "(2001) Дальнобойщики [сериал, DVDRip]", нужно чтобы скрипт добавлял в эти самые квадратные скобки размер. Например упростить операцию, не перебирать по табуляциям, а чтобы размер ставился перед знаком "]"

Iska 10-10-2011 19:22 1770318

750IL, спасибо, ясно. Я для сих целей пользую Far Manager.

читать дальше »
Вид папки перед операцией:



После нажатия «F3» на имени потребной папки — отображается её размер:



Для определения суммарного объёма выделенных папок и файлов также достаточно нажать «F3»:



750IL 10-10-2011 19:24 1770319

Дело в том что я бы конечно поставил его, но заставить это сделать примерно 80 машинам, думаю это будет проблематично=) Но всё равно спасибо за совет.

Ильдар 10-10-2011 19:45 1770339

750IL, используй Disk Triage, с каким нибудь планировщиком.

Iska 10-10-2011 22:01 1770440

Цитата:

Цитата 750IL
Дело в том что я бы конечно поставил его, но заставить это сделать примерно 80 машинам, думаю это будет проблематично »

Я понимаю. Потому, я лишь Вас имел в виду.


750IL, в принципе-то, Проводник показывает суммарный раздел в Tooltip'е — всплывающей подсказке.

750IL 15-10-2011 20:26 1774033

Цитата:

Цитата Kazun
Поправил скрипт,для обновления меток,но подпапки именовать не будет. »

Твой скрипт не обновляет, а дописывает к существуещему имени папки размер, вот что выходит: Сериалы [9,34 GB] [9,34 GB] [9,34 GB] [9,34 GB]

Busla 17-10-2011 09:34 1775093

750IL, и всё равно для подобного безобразия имеются другие, более практичные методы. Например, уже традиционный для файлобмена в локалке DC.


Время: 01:47.

Время: 01:47.
© OSzone.net 2001-