Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Поиск файла, и создание лога (bat)

Perevozcik Знаток (433), закрыт 9 лет назад
Подскажите как найти файл на ВСЁМ ДИСКЕ, я использовал такой код dir /b /s C:\name.txt >> log.txt
но он находит файл и идёт дальше искать =( ,а мне нужно что бы если нашол создал лог вписал в него путь где нашол файл и закончил работу.

ещё дали такой код (if /i exist "c:\name.txt" (>log.txt echo yes name.txt) else (echo not exist name.txt))

как бы он норм только не ищёт по всему диску, и лог не могу понять как сделать что бы путь был в нём.

Главное что бы когда нашол файл сразу же прекратил поиск файла, и не искал дальше.
Лучший ответ
Сергей Тихомиров Мудрец (19302) 9 лет назад
@ECHO OFF
FOR /R "c:\" %%I IN (.) DO IF EXIST %%~fI\name.txt ECHO %%~fI\name.txt & GOTO END

бла-бла-бла-пиши-тут-чё-угодно

:END

Вывод конвейером отсылаешь в свой log.txt
Остальные ответы
... Гений (84839) 9 лет назад
@echo off

for /r C:\ %%i in (*.*) do (
if /i %%~ni%%~xi==autoexec.bat (
echo %%i >> log.txt
exit
)
)

P.S:
for /r рекурсивно обходит папки, начиная с указанной после /r
if /i сравнивает имена без учета регистров.
%%~ni - извлекает из %%i имя файла
%%~xi - извлекает из %%i расширение файла вместе с точкой

К сож. если в маске вместо *.* указать имя файла (казалось-бы) - работает неправильно.
Похожие вопросы