Как проверить есть ли файл в папке bat
У некоторых пользователей, при работе на компьютере, возникает необходимость получить список файлов в папке. Такой список может быть нужен для разных целей: для каталогизации файлов в папках, для сравнения содержимого в папках, для того, чтобы составить список фильмов, музыкальных композиций, электронных книг и т.п.
Во многих случаях, количество файлов может быть очень большим, поэтому вручную составить полный список находящихся в папке файлов будет проблематично. Предположим, в папке на вашем компьютере хранится электронная библиотека, или вы имеете большое собрание фильмов. Даже увлеченному человеку запомнить все содержимое папки или диска будет нереально.
Выходом из этой ситуации будет создание списка файлов, находящихся в данной папке, а потом сохранение этого списка в текстовый файл. В дальнейшем, полученный список можно будет отредактировать так, как это будет необходимо.
Например, у меня на внешних жестких дисках, каждый из которых имеет размер в несколько терабайт, хранится большая коллекция фильмов, которые я собирал несколько лет. Мне, конечно, тяжело запомнить все названия фильмов, которые хранятся на жестких дисках.
Встречая в интернете какой-либо фильм, имея у себя список файлов в папке, я могу легко проверить, есть ли такой фильм у меня в коллекции, или я встретил новый фильм. Поэтому я приступил к поиску решения данного вопроса.
В итоге, я нашел несколько простых вариантов решения этой проблемы. Создать список файлов в папке можно разными способами: при помощи командной строки, при помощи файла, который имеет расширение «.bat», при помощи специальных программ, сохранить список в браузере.
Сохранение списка файлов с помощью командной строки
Вначале вам необходимо будет перейти к нужной папке, или диску, если вы хотите получить список файлов, которые находятся на диске. После открытия папки или диска, удерживая на клавиатуре кнопку «Shift», кликните правой кнопкой мыши внутри этой папки. В открывшемся контекстном меню выберите пункт «Открыть окно команд».
После этого откроется окно консоли, в которой уже будет указан путь к нужной директории (в вашем случае, будет к той папке, которую вы откроете). В этом примере, это папка «Программы» на Рабочем столе моего компьютера. В этой папке находятся другие папки, в которых находятся ярлыки программ.
Далее нужно будет ввести одну из этих команд:
После ввода «dir» должен быть пробел. Вместо «filelist» может написать свое название файла, только латинскими буквами. Не забудьте в конце добавить формат «.txt».
Эти команды отличаются друг от друга в использовании дополнительных критериев сохранения списка файлов:
- /b — обозначает, что будут сохранены только имена файлов.
- /s — обозначает, что дополнительно в список будут включены все файлы и подкаталоги (подпапки), которые находятся в этой папке.
Затем на клавиатуре нажмите на кнопку «Enter».
После этого вы можете открыть папку и увидеть, что в папке находится текстовый файл «filelist». Теперь можете открыть этот файл с помощью Блокнота.
Если в данной папке некоторые файлы имели русские имена, то вместо имен этих файлов, вы увидите непонятные символы (крякозябры). Дело в том, что программа Блокнот не понимает кодировку MS-DOS.
Поэтому, открыть созданный файл, можно будет с помощью программы Word. Предполагаю, что у большинства пользователей, на компьютере установлена данная программа.
Кликните по текстовому файлу правой кнопкой мыши, а затем в контекстном меню выберите пункт «Открыть с помощью». Выберите для открытия файла программу Microsoft Office Word. В окне программы Word будет открыто окно «Преобразование текста», в котором нужно будет выбрать кодировку MS-DOS, которая позволит прочитать этот документ.
На образце вы увидите правильное отображение текста.
После нажатия на кнопку «ОК», данный текст будет открыт в программе Word. Вы можете провести редактирование документа, а потом сохранить его на компьютере в нужном формате, в том числе в формате «TXT». Проблем с кодировкой после сохранения файла уже не будет.
Получение списка файлов в папке с помощью bat файла
Один из самых доступных и простых способов получения списка файлов в папке – использование для этого специального bat файла. Существует несколько вариантов создания файла с расширением «.bat», с разным кодом.
Для создания bat файла вам нужно будет открыть Блокнот, а затем вставить туда этот код:
Сохраните этот файл, имя файлу можете дать любое, самому файлу нужно дать расширение «BAT». Параметры сохранения файла в Блокноте будут выглядеть примерно так:
- Имя файла: filelist.bat
- Тип файла: Все файлы
После этого нажмите на кнопку «Сохранить».
Далее помещаете созданный файл в ту папку, из которой вы хотите получить, список находящихся там файлов. После этого, запустите файл с расширением «.bat». В данной папке будет создан файл «filelist» в формате «.txt», в котором будет находиться список файлов.
Существует несколько вариантов содержимого файла с расширением «.bat». При использовании этого метода, проблем с кодировкой не возникнет.
Программа DirLister для получения списка файлов
Вы можете создать список файлов расположенных в папке, при помощи бесплатной программы DirLister. Эта крошечная программа не требует установки на компьютер. После загрузки программы на свой компьютер, распакуйте архив с программой.
Для запуска программы, откройте папку с программой, а потом кликните по приложению DirLister.
В окне программы DirLister, в разделе «Directory To Scan», при помощи кнопки «Open», вам нужно будет выбрать папку для сканирования.
В разделе «Output File», при помощи кнопки «Save As…», вам необходимо будет выбрать место для сохранения списка файлов.
Вы можете уточнить критерии поиска файлов по маске «*.*», выбрав нужное имя или тип файла («TXT», «Excel», «HTML» и т.д.). После выбора необходимых настроек, нажмите на кнопку «Make List».
После завершения сканирования в левом нижнем углу программы будет выведена информация об успешном завершении создания списка файлов: «All file processed correctly».
Программа DirLister выводит не только список файлов в данной папке, но и дает полную информацию о вложенных в эту папку файлах и папках, в том числе о размере файлов.
Получаем список файлов в Total Commander
Получить список файлов в папке можно при помощи популярного файлового менеджера Total Commander. Для этого, открываете в окне программы нужную папку.
В меню «Выделение», сначала выбираете пункт «Выделить всё». После того, как все файлы были выделены, в этом же меню выбираете пункт «Копировать имена в буфер».
Заключение
Потом открываете Блокнот или другой текстовый редактор, и вставляете туда список файлов из буфера обмена.
Вы можете в меню «Выделение» выбрать пункт «Сохранить выделение в файл…». В этом случае, вам нужно будет дать имя файлу, а затем сохранить его в формате «TXT».
Сохранение списка файлов в папке в браузере
Получить список файлов в папке можно при помощи браузера. Сначала откройте браузер, а затем перетащите папку в окно браузера. Список файлов будет открыт в окне браузера. Между содержимым можно будет перемещаться как в Проводнике.
Далее можете просто скопировать список файлов в текстовый редактор, сохранить список в HTML файл, или сохранить в PDF при помощи виртуального принтера.
Заключение
При помощи таких достаточно простых способов, вы можете легко создать список файлов, которые находятся в конкретной папке или на диске вашего компьютера. Вы можете использовать наиболее удобный для себя способ сохранения списка файлов.
Проверка наличия файлов в папке
Собственно раньше использовался такой кусок кода: dir "%filesDIR%\*.pc*" /a-D 2>nul >nul || echo.
Проверка наличия файла с определенным расширением и последующее действие
Добрый день. Есть папка с файлами, расширения могут быть разными: doc, xls, pdf, txt. Необходимо.
Проверка наличия доступа к папке
Здравствуйте. В программке, которую я пишу, понадобилось получить список файлов (их очень много).
"C:\одна папка" в ней файл "1.txt"
"C:\другая папка" в ней файл "2.txt"
после запуска name.bat с кодом (кодировка 866):
Здравствуйте!
Похожая проблема - решил не создавть новую тему.Мне нужно проверить есть ли по пути C:file/ тестовик file.txt.
Если тестовик есть, то то запустить msgbox.vbs, если тескстовика нет, то запустить start.exe(будет папка, в ней проверяющий батник,msgbox.vbs,start.exe). далеко можно зайти по такому пути, поэтому сначала азы и "правописание", потом помощь (тем более что ваша задача легко решается одной строкой и только
Насколько я понял то команда будет выглядеть так
Добавлено через 21 минуту
cdjsend, попробуй так если еще надо, но может не сработать т.к. Только начинаю разбираться
Знающие, проверьте выше указанный скрипт, если он им является.
if exits "C:files\file.txt" start msgbox.vbs else start start.exe(ни в коем случае не давать файлам имена равные именам команд - start.exe - чревато)
Если тестовик есть, то то запустить A, если тескстовика нет, то запустить B а если не будете пытаться освоить хотя бы азы, вам и готовое решение не поможет (или ненадолго, до первой проблемки) Извиняюсь, но я батниками вообще пользоваться не умеюВ данном случае парня можно понять и простить.
mokilo,
с момента об'явления компанией-производителем Windows XP устаревшей и неподдерживаемой
( на очереди к официальному забвению находится также Windows Vista )
основным 'консольным' средством автоматизации Windows является powershell.
Поэтому морочить себе голову изучением 'азов' cmd, как здесь советуют, не надо от слова совсем.
А что надо ?
А надо разбираться в powershell причём самой последней версии ( 5.1 на тек. момент )
Заметим, что для сравнения строк здесь используется двойной знак равенства "= =".
Если = = , то выполняется . Здесь в качестве строки может выступать и замещаемый параметр.
Пример 5. Составим файл iftren.bat, который получает в качестве входного параметра либо символ "K", либо "P", и в зависимости от этого запускает соответствующую программу.
Вместо замещаемого параметра %1 подставляется либо "K", либо "P", либо пустая строка, если мы запустили BAT-файл без параметров. Первый IF проверяет, был ли параметр "K", и если да, то запускает программу «Клавиатурный тренажер». Второй IF проделывает то же самое для параметра "P" и программы TURBO. Третий IF проверяет, не был ли запущен BAT-файл без параметров, и если да, то выдает справку о правильном формате.
Задание. Создайте файл ifdir.bat, который бы в зависимости от введенного параметра командной строки ("S", "P" или "W") вызывал бы команду DIR с соответствующим параметром, а при отсутствии параметров выдавал бы напоминание о формате команды.
Команда IF часто используется вместе с GOTO.
if *%1*= =** echo ФОРМАТ: iftren K (или iftren P)
echo Загружаю TURBO PASCAL.
echo Загружаю программу TRK.
Задание. Создайте файл iftren.bat из Примера 6 и проверьте три варианта выполнения этого командного файла.
б) Проверка существования файла на диске.
ФОРМАТ: IF [NOT] EXIST [ ][ ]
Этот вариант команды IF проверяет, имеется ли на диске файл с заданным именем и если да, то выполняется .
if exist %1 goto yes
echo Такой файл не существует!
Задание. Создайте файл ifexist.bat из Примера 7 и проверьте два варианта выполнения этого командного файла.
8. Циклическая подстановка
В языке BAT-файлов нет полноценной команды для определения циклов. Однако, есть команда для циклического выполнения определенной команды для всех файлов из указанного множества.
ФОРМАТ: FOR %% IN ( ) DO
Примеры правильных заданий :
(A B C D E F G H I J)
Пример 8. Последовательный вывод на экран содержимого всех TXT-файлов текущей директории.
for %%f in (*.txt) do type %%f
В команду type %%f вместо %%f поочередно подставляются имена всех TXT-файлов текущего каталога.
Пример 9. Файл ABFG.bat позволяет создать четыре каталога: CAT-A, CAT-B, CAT-F, CAT-G, а также скопировать в них файлы, которые начинаются соответственно с A, B, F, G.
for %%c in (A B F G) do md cat-%%c
for %%f in (A*.*) do copy %%f cat-A
for %%f in (b*.*) do copy %%f cat-b
for %%f in (f*.*) do copy %%f cat-f
for %%f in (g*.*) do copy %%f cat-g
Задание. Создайте командный файл ABFG.bat и проверьте его работу.
Составьте другой командный файл, с помощью которого можно удалить все каталоги, созданные файлом ABFG.bat.
9. Вызов BAT-файла из другого BAT-файла
Из тела одного BAT-файла можно вызвать другой. Это может потребоваться, например, если нужно в команде циклической подстановки выполнить не одну, а несколько команд. Существует два способа вызова одного командного файла из другого.
а) В командном файле пишется имя вызываемого BAT-файла (с параметрами, если они есть). При этом управление передается в вызываемый BAT-файл и после достижения его конца НЕ возвращается в главный BAT-файл. Чтобы такой возврат произошел, нужно
б) Вызывать BAT-файл с помощью команды CALL:
Задание. Создайте BAT-файл с вызовом другого BAT-файла. Сначала используйте вариант вызова без, а затем с использованием команды CALL.
| | следующая лекция ==> | |
Рассмотрение технологии создания простой однотабличной базы данных | | | Важность полесской экспедиции Луизы Арнер Бойд сегодня |
Я написал следующий скрипт:
Но он не проверяет существование файла в папках диска, что мне нужно. Не подскажете как это реализовать?
2 ответа 2
Самый простой вариант
P.S. не для "Windows XP", т.к. в поставку не входит forfiles.exe
Либо без findstr (что будет точнее для поиска именно файла, а не просто совпадения строки):
Также, если потребуется список файлов с путями, то удалить ">nul 2>&1 " и "&&echo file found||echo file not found"
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.1.10.35756
Проверка файла как-то так:
Проверка существования файлов и подпапок в заданной папке:
Если служба "отваливается" путем завершения процесса службы, то проще проверять существует ли запущенный процесс с помощью tasklist и ее фильтров. Смотрите tasklist /?
Серый форум → Общение → CMD/BAT → CMD/BAT: Проверка наличия файлов (любых) в каталоге.
вы можете использовать IF EXIST для проверки файла:
вот рабочий пример поиска файла или папки:
введите IF/? чтобы получить помощь о if, он четко объясняет, как использовать IF EXIST.
чтобы удалить полное дерево, кроме некоторых папок, см. ответ на этот вопрос:пакетный скрипт Windows для удаления всего в папке, кроме одного
наконец копирование просто означает вызов COPY и вызов другого файла bat можно сделать следующим образом:
MYOTHERBATFILE.BAT sync.bat myprogram.ini
вот хороший пример того, как выполнить команду, если файл существует или не существует:
if exist C:myprogramsyncdata.handler echo Now Exiting && Exitif not exist C:myprogramhtmldata.sql Exit
мы возьмем эти три файла и поместим их во временное место. После удаления папки он восстановит эти три файла.
использовать команда xcopy:
я объясню, что такое /c /d /h /e /i /y означает:
/C Continues copying even if errors occur. /D:m-d-y Copies files changed on or after the specified date. If no date is given, copies only those files whose source time is newer than the destination time. /H Copies hidden and system files also. /E Copies directories and subdirectories, including empty ones. Same as /S /E. May be used to modify /T. /T Creates directory structure, but does not copy files. Does not include empty directories or subdirectories. /T /E includes /I If destination does not exist and copying more than one file, assumes that destination must be a directory. /Y Suppresses prompting to confirm you want to overwrite an existing destination file.`To see all the commands type`xcopy /? in cmd
вызов другого пакетного файла с опцией sync.летучая мышь иногда.ini.
Я не уверен, что вы подразумеваете под этим, но если вы просто хотите открыть оба этих файла, вы просто поместите путь к файлу, как
если бы это было в среде Bash это было легко для меня, но я не знать, как проверить, существует ли файл или папка, и если это файл или папка.
вы используете пакетный файл. Вы упомянули ранее, что вам нужно создать a .bat файл, чтобы использовать это:
Я должен создать .Файл BAT, который делает это:
Описание
Иногда необходимо при появлении определенного файла в папке выполнить какое-то действие. Чтобы организовать проверку появления файла в папке можно использовать следующий пакетный файл
2 ответа 2
Самый простой вариант
Либо без findstr (что будет точнее для поиска именно файла, а не просто совпадения строки):
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.1.10.35756
Проверка файла как-то так:
Проверка существования файлов и подпапок в заданной папке:
Фильтрация в Powershell Test-Path
Мы можем предполагать, что в папке находиться файл с неизвестным именем и хотим проверить это. В самом ключе Path возможно использовать простые маски. Выполнив следующую команду у нас вернется True, если в папке находится хотя бы один файл заканчивающийся на .txt:
Аналогично, если мы проверяем путь, причем промежуточный:
Доступен ключ IsValid и он должен валидировать путь на корректное написание. Если мы его установим, то вместо того что бы проверять существование пути будет проверяться корректность написания:
Есть еще два интересных ключа:
С помощью этих ключей мы можем проверить, например, существует ли в папке документы *.txt и *.docx одновременно или узнать есть ли что-то кроме *.jpg. Для работы с этими параметрами нужно указать * в конце пути как на примере:
Похожие маски мы можем делать и для ключа Filter, но он принимает только одно значение:
Проверка существования файла Bash
Начать стоит с простого и более общего метода. Параметр -e позволяет определить, существует ли указанный объект. Не имеет значения, является объект каталогом или файлом.
Пример работы кода:
Проверка наличия файлов (скрипт)
В данном скрипте необходимо указать свои данные в тех местах, где текст выделен красным цветом.
Set DataFiles = DataFolder.Files NumberOfFiles = DataFiles.Count
if NumberOfFiles > 0 then
Sub SendMail (strSub, strBody, strTo, strFrom)
Проверьте, существует ли несколько файлов
Вместо использования сложных вложенных конструкций if / else вы можете использовать -a (или && с [[ ), чтобы проверить, существует ли несколько файлов:
Эквивалентные варианты без использования оператора IF:
Операторы проверки файлов
Команда test включает в себя следующие операторы FILE, которые позволяют проверять файлы определенных типов:
Читайте также: