Партиден файл извежда липсващи файлове в текстов файл

Опитвам се да направя партиден файл, за да търся имена на файлове въз основа на списък, който имам в текстов файл (едно име на файл на ред без разширение)
Пакетният файл трябва да търси в папка+подпапки и да изведе файлове, които НЕ НАМЕРИ в текстов файл (Липсва.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