CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге

Аватара пользователя
VALET93

CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге

Сообщение VALET93 »

Помогите реализовать задачу.

Нужно создать bat-ник который выведет на экран имена файлов txt

в котологе в котором находиться сам bat. Если txt файлов нет тогда вывести сообщение

пользователю что их нет. Все чтобы выводилось в самой командной строке.
Аватара пользователя
VALET93

Re: CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге

Сообщение VALET93 »

Код:

Код: Выделить всё

@Echo off
Echo В папке %~dp0 ищем txt-файлы
Dir /B /A:-D %~dp0*.txt
Pause
Аватара пользователя
VALET93

Re: CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге

Сообщение VALET93 »

Iska


Цитата:



"%~dp0*.shp" 2^>nul')





Для чего служат цифры перед символом перенаправления?
Аватара пользователя
VALET93

Re: CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге

Сообщение VALET93 »

Прошел год и решил кое-что модифицировать в скриптах и нашел эту тему Изображение



Как писалось выше, этот код позволяет узнать имя файла по расширению в папке в которой расположен .bat файл запущенный.





Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
for /f "delims=" %%i in ('dir /b /a:-d "%~dp0*.shp" 2^>nul') do if not defined sFile set sFile=%%i
if defined sFile (echo [%sFile%]) else (echo Not found any [*.shp] files)
endlocal
exit /b

А как мне узнать расширение мя файла по расширению, расположенного в другой папке? например %dir%



пробовал разные варианты - ничего не получается.

вот часть варианта, который я вижу вроде бы правильным, но не работает:

'dir %dir% /b /a:-d "%dir%*.shp" 2^>nul'



в чем ошибка?
Аватара пользователя
VALET93

Re: CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге

Сообщение VALET93 »

Ага, ага chcp - Смена кодовой страницы.



Так я же полностью привел вариант, сообщение двадцать шесть. да, простите, я сам пока попробую те и те варианты, погуглю, если уже будет не сообразить, отпишусь.
Аватара пользователя
VALET93

Re: CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге

Сообщение VALET93 »

megaloman, Спасибо большое! А как сделать если в папке нет файлов txt

тогда выводилось бы сообщение "В папке нет txt файлов"
Аватара пользователя
VALET93

Re: CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге

Сообщение VALET93 »

Код:

Код: Выделить всё

@Echo off
cls
Echo В папке %~dp0 ищем txt-файлы
Dir /B /A:-D %~dp0*.txt 2>nul || Echo В папке %~dp0 txt-файлы не найдены 
Pause
Аватара пользователя
dee.jack

Re: CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге

Сообщение dee.jack »

Интересует то же самое, только для любых расширений файлов, желательно такой-же компактный код, и чтобы эти данные можно было записать в тхт или в лог, можно в том же каталоге откуда и запущен bat.
Аватара пользователя
dee.jack

Re: CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге

Сообщение dee.jack »

Цитата ndvikulov:



з.ы. не получилось вывод dir записать в переменную - пишется только в файл.
CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге




Попробуйте так:



Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
for /f "delims=" %%i in ('dir /b /a:-d "%~dp0*.shp" 2^>nul') do if not defined sFile set sFile=%%i
if defined sFile (echo [%sFile%]) else (echo Not found any [*.shp] files)
endlocal
exit /b
Аватара пользователя
ndvikulov

Re: CMD/BAT - [решено] Вывести имена файлов *.txt в каталоге

Сообщение ndvikulov »

Здравствуйте. Похожая задача. У меня батник, а рядом файл с расширением определенным. Этот файл будет с разным именем каждый день. Как мне узнать имя единственного файла с определенным расширением в папке и записать это имя в переменную?



примерный алгоритм:

1. батник смотрит в своей папке имя файла с расширением .shp

2. записывает это имя в переменную для последующих команд.



з.ы. не получилось вывод dir записать в переменную - пишется только в файл.



Спасибо.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»