Компьютерный форум 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=299628)

Alexander_88 11-05-2015 19:16 2506116

проверка имен файлов в ссылках с реальными файлами
 
здравствуйте, подскажите, пожалуйста, каким образом можно проверить соответствие ссылок на файлы в тхт файле со списком файлов в папке?
Проверять необходимо по имени файла, обязательно вместе с расширением
В папке будут лежать разные файлы, проверять необходимо не все файлы, а только те, имена которых начинаются с пяти цифр (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


Foreigner 12-05-2015 00:14 2506216

Код:

$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 - это папка с файлами

Alexander_88 12-05-2015 01:16 2506225

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






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

Alexander_88 12-05-2015 15:56 2506437

Цитата:

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

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

Alexander_88 13-05-2015 00:56 2506671

Цитата:

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

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

corbis 13-05-2015 11:04 2506797

Код:

$files = ((get-childitem "C:\Users\expert\Downloads\test").name) -match "^\d{5}"

Alexander_88 13-05-2015 13:04 2506862

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


Время: 07:58.

Время: 07:58.
© OSzone.net 2001-