Проверка точности размеров файлов
Здравствуйте, подскажите, пожалуйста, как можно проверить размеры файлов указанные в тхт документе с размером файлов в папке, и если какие - то из размеров будут не сходиться, то открыть по окончании работы скрипта, блокнот, в котором будут написаны имена не сходившихся файлов вместе с размерами. Притом необходимо сравнивать несколько пар (тхт - папка с файлами)
формат одного тхт документа таков (присутствуют кв. скобки): Код:
<a href="http://yandex.ru/file/71a4bcc5a6676/00001start_ARM-385_google.com.avi" target="_blank">[$id] - 1.1 GB</a> В папке, к которой будет относиться этот тхт файл, много файлов, но среди них обязательно присутствуют те, которые есть в блокноте, имена их в точности такие же, что выделено жирным шрифтом. Я должен буду указать пары тхт - папка с файлами, которые необходимо сравнивать, а также слово ориентир, через который скрипт будет находить имена файлов внутри ссылок тхт документа. Известно то, что слово ориентир в ссылках (подчеркнуто на примере), всегда одно и тоже только для одной пары тхт с папкой. Вычислять имя файла в ссылке нужно так.. если от слова ориентира идти влево, то начало имени будет начинаться сразу после первого встречного знака Код:
/ Код:
" Код:
[$id] - Код:
</a> Размер файла в тхт всегда округляется в большую сторону если второй знак после запятов 5 и более (пример 5.46 - 5.5 5.53 - 5.5 5.45 - 5.5) Я указываю данные к примеру Код:
С:\\Work\boeviki - папка с файлами имя файла <размер файла в папке>/<размер файла, указанный в тхт документе> :) |
Не тестировал:
Код:
$folder = "С:\Work\boeviki" |
вот такое получилось
Код:
$folder = "D:\00 ext\start" |
А имена файлов какие?
00001start_ARM-385_google.com.avi или ARM-385_google.com.avi |
00001start_ARM-385_google.com.avi
в точности, как выделено у меня жирным шрифтом. может мне нужно слово ориентир задать?, чтобы скрипту легче было, потому что, где я тестирую, там не start и можно ли добавить несколько пар тхт-папка, или нужно одним скриптом обрабатывать одну пару - тхт? |
Alexander_88, Понятно. Просто делать это в воображении не слишком хорошее занятие, сейчас попробую, что-нибудь смоделировать на реальных файлах.
|
Попробуйте пока такой вариант, для одной папки:
Код:
$folder = get-item "D:\00 ext\start" |
протестировал.. вывелось все... и равное по размеру и разное, только пропущены файлы, которые по размеру 1000 - 1024 MB
пример их: Код:
<a href="http://yandex.ru/file/59c637e386ddd/00001start_PTJ-005_A_google.com.wmv" target="_blank">[$id] - 1 001.1 MB</a> |
Alexander_88, Измените эту строку:
Код:
s = [double] (($line -split '-\s|\s[GM]B')[1] -replace '\s') |
исправил, все также как было в первый раз.., я заметил в размерах, которые выводятся в созданном тхт, размер, который находится внутри ссылки тхт, пишется через запятую (хотя в списке ссылок через точку стоит), а размер, который берется с файлы через точку, может в этом дело?
Код:
<934,5 MB><934.5 MB> |
Alexander_88, Я отредактировал последний пост, добавил еще одни скобки, попробуйте еще раз.
|
я взял пост, заменил в нем
Код:
s = [double] (($line -split '-\s|\s[GM]B')[1] -replace '\s') получилось Код:
$folder = get-item "D:\00 ext\start" теперь, выводятся все файлы (и разные по размеру и одинаковые).. везде стоят точки, 1000-1024мб тоже выводятся |
Цитата:
Код:
... |
спасибо, работает, а как сделать, чтобы тхт файл не дополнялся, а перезаписывался?
|
В начале скрипта
Код:
$folder = get-item "D:\00 ext\start" |
спасибо, вопросов больше не имею :)
|
Время: 10:26. |
Время: 10:26.
© OSzone.net 2001-