Пакетный файл выводит отсутствующие файлы в текстовый файл

Я пытаюсь создать пакетный файл для поиска имен файлов на основе списка, который у меня есть в текстовом файле (одно имя файла в строке без расширения).
Пакетный файл должен искать в папке + подпапках и выводить файлы, которые он НЕ НАЙТИ, в текстовый файл (Missing.txt)`

echo off
for /f "tokens=*" %%i in (Filelist.txt) DO echo %%i>InList.txt
(
IF NOT EXIST %%i (echo %%i>Missing.txt) 
) 

Итак, теперь в InList.txt есть все имена файлов из Filelist.txt, независимо от того, существуют они или нет
, а в Missing.txt есть %i в файле

хорошо, это код, который я использовал для решения моей проблемы @echo off for /f "tokens=*" %%i in (Filelist.txt) DO ( IF EXIST %%i.* (echo %%i>>InList.txt) ELSE echo %%i>>Missing.txt )

у моих имен файлов внутри Filelist.txt не было расширений, поэтому я добавил .* после %%i в операторе IF, но если ваш список файлов имеет расширения, вы можете использовать решение ниже


person lemons    schedule 30.04.2014    source источник


Ответы (1)


Вы неправильно поняли формат цикла for. Вам также нужно использовать >> для добавления в текстовый файл вместо >, который будет перезаписывать файл. Отходим от исходной логики, где InList.txt будет содержать все файлы, а Missing.txt будет содержать только отсутствующие файлы:

@echo off
for /f "tokens=*" %%i in (Filelist.txt) DO (
    echo %%i>>InList.txt
    IF NOT EXIST %%i (echo %%i>>Missing.txt) 
) 

Но если InList.txt должен содержать только те файлы, которые действительно существуют:

@echo off
for /f "tokens=*" %%i in (Filelist.txt) DO (
    IF EXIST %%i (echo %%i>>InList.txt) ELSE echo %%i>>Missing.txt
) 
person unclemeat    schedule 01.05.2014
comment
теперь работает, но находит только файлы с расширениями (имя файла.txt) можно ли искать файлы без расширений (имя файла)? - person lemons; 01.05.2014
comment
Это возможно, если имя не является дубликатом (т. е. file.txt и file.exe без расширения оба просто file). - person unclemeat; 01.05.2014
comment
так что мне нужно добавить? на данный момент у меня есть два файла в моем каталоге test1.txt и test2.txt после того, как я добавил два имени в список файлов: test1 test2.txt test1 показывает, что test2.txt отсутствует в списке - person lemons; 01.05.2014
comment
зависит: все ли записи в Filelist.txt без расширения, или у некоторых есть расширение, а у других нет? - person Stephan; 01.05.2014