Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] проверка имен файлов в ссылках с реальными файлами

Ответить
Настройки темы
PowerShell - [решено] проверка имен файлов в ссылках с реальными файлами

Ветеран


Сообщения: 558
Благодарности: 5

Профиль | Отправить PM | Цитировать


здравствуйте, подскажите, пожалуйста, каким образом можно проверить соответствие ссылок на файлы в тхт файле со списком файлов в папке?
Проверять необходимо по имени файла, обязательно вместе с расширением
В папке будут лежать разные файлы, проверять необходимо не все файлы, а только те, имена которых начинаются с пяти цифр (00001, 00453, 00067 и т.д)

В тхт файле будет список ссылок такого типа:
Код: Выделить весь код
<a href="http://google.com/file/064cf3f45692b/00001start_DCN-047.wmv" target="_blank">00001start_DCN-047.wmv - 1.0 GB</a>
<a href="http://google.com/file/6959d25c2772b/00002start_CMV-049.mp4" target="_blank">00002start_CMV-049.mp4 - 1.2 GB</a>
<a href="http://google.com/file/c5596a5a160d5/00003start_MUSO-0059.avi" target="_blank">00003start_MUSO-0059.avi - 1.2 GB</a>
<a href="http://google.com/file/50b2abc43d59c/00004start_ADV-R0055.avi" target="_blank">00004start_ADV-R0055.avi - 1.2 GB</a>
имена файлов я выделил жирным

по окончании работы скрипта, должно вывестись список имен файлов, которые были в ссылках, но которые не нашлись в папке, а также наоборот список имен, которые были в папке, но не нашлись в ссылках.
А если все соответствует, то просто какое - нибудь сообщение.. "все соответствует" например, ну либо вообще ничего пусть не выводится.

пример:

Список ссылок привел выше.

Список файлов в папке:
Код: Выделить весь код
00001start_DCN-047.wmv
00002start_CMV-049.mp4
00003start_MUSO-0059.avi
00005start_USO-059.avi
00075start_MO-005.avi
В результате выполнения скрипта, выводится:

Код: Выделить весь код
Отсутствие в ссылках:
00005start_USO-059.avi
00075start_MO-005.avi

Отсутствие в папке:
00004start_ADV-R0055.avi

Отправлено: 19:16, 11-05-2015

 

Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Код: Выделить весь код
$list = get-content 1.txt | foreach { ($_ -split '>|\s-')[1] }
$files = (get-childitem test).name

$diff = compare-object $list $files | group { $_.sideindicator }

'Отсутствие в ссылках:'
$diff[0].group.inputobject

'Отсутствие в папке:'
$diff[1].group.inputobject
test - это папка с файлами

Последний раз редактировалось Foreigner, 12-05-2015 в 00:22.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:14, 12-05-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 558
Благодарности: 5

Профиль | Отправить PM | Цитировать


спасибо, а можно сделать как я писал, чтобы в папке проверялись не все файлы, а только те, которые начинаются с пяти цифр (00001.... 00234..... 00425..... и т.д.), это именно в папке, в ссылках не надо такого






И можно еще после вывода на экран сделать так, чтобы, то, что отсутствует в ссылках записалось в тхт файл (т.е, только имена файлов с расширениями)

Последний раз редактировалось Alexander_88, 12-05-2015 в 01:27.


Отправлено: 01:16, 12-05-2015 | #3


Ветеран


Сообщения: 558
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата Alexander_88:
И можно еще после вывода на экран сделать так, чтобы, то, что отсутствует в ссылках записалось в тхт файл (т.е, только имена файлов с расширениями) »
с этим разобрался, а вот чтобы файлы только нужные проверялись не знаю как сделать

Отправлено: 15:56, 12-05-2015 | #4


Ветеран


Сообщения: 558
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата Alexander_88:
с этим разобрался, а вот чтобы файлы только нужные проверялись не знаю как сделать »
Если это невозможно по каким - то причинам, можно ли сделать, чтобы я указывал имена файлов, которые проигнорируются. У меня в папке с файлами, одна лишняя папка и файл, нужно, чтобы они не попадали под проверку.

Отправлено: 00:56, 13-05-2015 | #5


Пользователь


Сообщения: 114
Благодарности: 13

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$files = ((get-childitem "C:\Users\expert\Downloads\test").name) -match "^\d{5}"
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:04, 13-05-2015 | #6


Ветеран


Сообщения: 558
Благодарности: 5

Профиль | Отправить PM | Цитировать


спасибо, заменил строку, получилось

Отправлено: 13:04, 13-05-2015 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] проверка имен файлов в ссылках с реальными файлами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Проверка списка имен в цикле bombording Скриптовые языки администрирования Windows 26 12-04-2014 06:06
[решено] преобразование кодировки имен файлов Magikanin2006 Microsoft Windows NT/2000/2003 3 15-09-2010 12:51
CMD/BAT - [решено] Цикл с использованием имен файлов Bastet Скриптовые языки администрирования Windows 5 05-07-2010 19:28
Интерфейс - [решено] Автоподстановка имен файлов в стандартных диалогах dzh2000 Microsoft Windows 2000/XP 5 16-03-2008 22:36
Как отключить автоподстановку имен файлов? Astra55 Microsoft Windows 2000/XP 4 29-05-2006 07:47




 
Переход