Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Ikol
7 / 7 / 3
Регистрация: 11.02.2012
Сообщений: 21
1

Найти в списке отсутствующие файлы

25.11.2015, 11:55. Просмотров 1052. Ответов 5
Метки bat (Все метки)

Добрый день. Просмотрел бегло несколько страниц форума, но так и не нашёл ответа, от чего и обращаюсь к вам за помощью.

Есть текстовый файл, в котором есть список имён файлов(каждое имя с новой строки). Порядка 1500 имён. И есть директория, в которой некоторые из этих файлов есть. Порядка 1000 файлов
Так вот, можно ли через батник составить новый текстовый файл, в котором будет аналогичный первому список, содержащий в себе те имена файлов, которые есть в первом списке, но нет в директории? Или, если перефразировать, мне нужно определить, каких файлов из первого списка нет в директории, и записать их в текстовый файл.

Очень надеюсь на вашу помощь, ну или хотя бы наводку, где искать. Максимум, что пока нашёл - поиск файлов по маске
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2015, 11:55
Ответы с готовыми решениями:

Удалить все файлы, начала имен которых нет в файле-списке
Добрый вечер! Подскажите, как с помощью bat-файла сделать следующее: Имеется группа файлов:...

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

Новый список, содержащий элементы списка A, отсутствующие в списке B
Даны два объекта A, B типа List<int> Нужно создать новый список, который содержит элементы списка...

Сформировать массив Z, в который включить из X элементы, отсутствующие в Y, а из Y - элементы, отсутствующие в X
В каждом из целочисленных массивов X и Y нет повторяющихся элементов. Сформировать массив Z, в...

Сформировать массив Z, в который включить из X элементы, отсутствующие в Y, а из Y - элементы, отсутствующие в X
В каждом из целочисленных массивов X(n) и Y(m) нет повторяющихся элементов. Сформировать массив...

5
greg zakharov
25.11.2015, 12:11
  #2

Не по теме:

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

0
Garry Galler
25.11.2015, 17:21
  #3

Не по теме:

Ikol,
Есть такая операция над множествами - Except, которая возвращает разницу между двумя списками - то что есть в первом, но не во втором.
Однако для ее применения требуется нормальный ЯП, а не голый батник. На powershell ваша задача решается тремя строчками, причем первые две - это указание путей до списка и директории. Однако вы не указали какая у вас версия Windows (требуется не ниже win7, где PoSh уже встроен) и удовлетворят ли вас решения на нормальных инструментах программирования.
PS:Решение на чистом bat, наверное тоже возможно - однако для тех, кто решает такие задачи за минуту, они не имеют смысла из-за неоправданной траты времени.

0
greg zakharov
25.11.2015, 17:58
  #4

Не по теме:

Garry Galler, на PS много что решается буквально парой-другой строк, но народ с каким-то остервенелым упорством налегает на баты. Не то привычка, не то культ...

0
b0gus
271 / 170 / 73
Регистрация: 17.03.2014
Сообщений: 489
25.11.2015, 21:58 5
Лучший ответ Сообщение было отмечено Ikol как решение

Решение

примерно так:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
:: файл со списком имён файлов
set "list=диск:\путь\файл1"
 
:: директория для поиска
set "dir=диск:\путь1\путь2"
 
:: выходной файл со списком отсутствующих файлов
set "result=диск:\путь\файл2"
 
if NOT exist "%dir%" echo.Директория "%dir%" отсутсвует&pause&exit /b 1
>"%result%" (for /f "usebackq delims=" %%v in ("%list%") do if NOT exist "%dir%\%%v" echo %%v)
for %%v in ("%result%") do if %%~zv==0 (echo.В директории "%dir%" имеются все файлы из списка "%list%") else (echo.Список файлов, отсутcвующих в директории "%dir%", см. в "%result%")
pause&exit /b 0
1
Ikol
7 / 7 / 3
Регистрация: 11.02.2012
Сообщений: 21
26.11.2015, 10:31  [ТС] 6
Спасибо, то что нужно =)
0
26.11.2015, 10:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2015, 10:31

Найти элементы массива отсутствующие в другом массиве
Необходимо создать третий массив в котором нужно собрать элементы массива А, которые не включаются...

Найти в одном списке максимальный элемент, а в другом списке соответствующий ему по индексу
Здравствуйте! Помогите решить задачу - есть два cписка a = и b = . Необходимо найти из списка 'a'...

Найти все RTF файлы, захешировать эти файлы MD5 и SHA1. Потов захешированые файлы поместить в документ
Найти все RTF файлы, захешировать эти файлы MD5 и SHA1. Потов захешированые файлы поместить в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru