|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Проверка точности размеров файлов |
|
Любой язык - [решено] Проверка точности размеров файлов
|
Ветеран Сообщения: 546 |
Профиль | Отправить PM | Цитировать Здравствуйте, подскажите, пожалуйста, как можно проверить размеры файлов указанные в тхт документе с размером файлов в папке, и если какие - то из размеров будут не сходиться, то открыть по окончании работы скрипта, блокнот, в котором будут написаны имена не сходившихся файлов вместе с размерами. Притом необходимо сравнивать несколько пар (тхт - папка с файлами)
формат одного тхт документа таков (присутствуют кв. скобки): <a href="http://yandex.ru/file/71a4bcc5a6676/00001start_ARM-385_google.com.avi" target="_blank">[$id] - 1.1 GB</a> <a href="http://yandex.ru/file/27cd09dd1cb5c/00002start_AVOP-022_google.com.mp4" target="_blank">[$id] - 1.0 GB</a> <a href="http://yandex.ru/file/8bf07957793df/00003start_BNMC-008_google.com.wmv" target="_blank">[$id] - 1.3 GB</a> <a href="http://yandex.ru/file/fc5850134442d/00004start_DDT-483_google.com.mkv" target="_blank">[$id] - 4.7 GB</a> <a href="http://yandex.ru/file/51e6863f8fbca/00005start_DIV-183_google.com.mkv" target="_blank">[$id] - 2.6 GB</a> <a href="http://yandex.ru/file/ab6d540284892/00006start_DMOW-053_google.com.mp4" target="_blank">[$id] - 1.4 GB</a> <a href="http://yandex.ru/file/677d9f6c585ef/00007start_DMOW-057_google.com.avi" target="_blank">[$id] - 1.1 GB</a> <a href="http://yandex.ru/file/05f8020c48834/00008start_DMOW-067_google.com.mp4" target="_blank">[$id] - 1.2 GB</a> <a href="http://yandex.ru/file/0480b3773d999/00009start_DMOW-068_google.com.avi" target="_blank">[$id] - 1.5 GB</a> В папке, к которой будет относиться этот тхт файл, много файлов, но среди них обязательно присутствуют те, которые есть в блокноте, имена их в точности такие же, что выделено жирным шрифтом. Я должен буду указать пары тхт - папка с файлами, которые необходимо сравнивать, а также слово ориентир, через который скрипт будет находить имена файлов внутри ссылок тхт документа. Известно то, что слово ориентир в ссылках (подчеркнуто на примере), всегда одно и тоже только для одной пары тхт с папкой. Вычислять имя файла в ссылке нужно так.. если от слова ориентира идти влево, то начало имени будет начинаться сразу после первого встречного знака А конец имени файла вычисляется так.. от слова ориентира движемся вправо, и кончаться имя будет перед первым встречным знаком кавычек Размер файла в тхт будет всегда описан между текстом и Размер файла в тхт всегда округляется до десятых.. если размер меньше гигабайта, то будет такой формат.. приме: 869.4 MB, 456.9 MB и т.д. Размер файла в тхт всегда округляется в большую сторону если второй знак после запятов 5 и более (пример 5.46 - 5.5 5.53 - 5.5 5.45 - 5.5) Я указываю данные к примеру С:\\Work\boeviki - папка с файлами C:\\info\boeviki.txt - txt файл start - слово ориентир С:\\Work\fantastika - папка с файлами C:\\info\fantastika.txt - txt файл tort - слово ориентир ............................................................ имя файла <размер файла в папке>/<размер файла, указанный в тхт документе> |
|
Отправлено: 09:14, 30-03-2015 |
Ветеран Сообщения: 1758
|
Alexander_88, Я отредактировал последний пост, добавил еще одни скобки, попробуйте еще раз.
|
Отправлено: 13:31, 30-03-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать я взял пост, заменил в нем
получилось $folder = get-item "D:\00 ext\start" foreach ($line in (get-content 000links.txt)) { [array] $files += [pscustomobject] @{ f = $([uri]($line -split '<a\shref="|"')[1]).segments[-1] -replace '%20',' ' s = [double] (($line -split '-\s|\s[GM]B')[1] -replace '\s') v = ($line -split '\.\d\s|</a')[1] }} $files | where {[io.file]::exists("$($folder)\$($_.f)")} | foreach { $file = $_ switch ($file.v) { 'GB' { $s = [math]::round((gi "$($folder)\$($file.f)").length / 1GB,1) } 'MB' { $s = [math]::round((gi "$($folder)\$($file.f)").length / 1MB,1) } } "$($file.f)<$($file.s) $($file.v)><$($s) $($file.v)>" | add-content "C:\Info\$($folder.name).txt" } invoke-item "C:\Info\$($folder.name).txt" теперь, выводятся все файлы (и разные по размеру и одинаковые).. везде стоят точки, 1000-1024мб тоже выводятся |
Отправлено: 14:04, 30-03-2015 | #12 |
Ветеран Сообщения: 1758
|
Цитата Alexander_88:
|
|
Отправлено: 15:02, 30-03-2015 | #13 |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать спасибо, работает, а как сделать, чтобы тхт файл не дополнялся, а перезаписывался?
|
Отправлено: 15:22, 30-03-2015 | #14 |
Ветеран Сообщения: 1758
|
|
Отправлено: 15:28, 30-03-2015 | #15 |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать спасибо, вопросов больше не имею
|
Отправлено: 15:34, 30-03-2015 | #16 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Удаление файлов по дате больших размеров. | Sony777 | Скриптовые языки администрирования Windows | 11 | 03-06-2012 16:23 | |
Любой язык - [решено] Вывод списка файлов и их размеров в байтах из заданной папки | Vadikan | Скриптовые языки администрирования Windows | 6 | 18-03-2011 23:16 | |
VBS/WSH/JS - Проверка и удаление файлов | AndrewZ | Скриптовые языки администрирования Windows | 2 | 04-03-2011 16:56 | |
Разное - Проблема с переносом файлов больших размеров на плеер | The_Berzerker | Накопители (SSD, HDD, USB Flash) | 2 | 01-07-2010 07:45 | |
Проверка защищенных файлов | SergOst | Microsoft Windows NT/2000/2003 | 11 | 15-10-2006 18:07 |
|