Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вывод списка файлов с указанным расширением

Ответить
Настройки темы
CMD/BAT - [решено] Вывод списка файлов с указанным расширением

Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго вечера!
Есть такое задание:

Вывод на экран имен всех файлов с указанным расширением, находящихся в каталоге, имя которого задается при запуске КФ первым параметром. Расширение файлов задается вторым параметром. Полученный КФ должен состоять из ОДНОЙ строки.

Для реализации сего задания я сделал такой скрипт:

Код: Выделить весь код
@echo off
set k = c:\lab1\ & set r = *.txt & for %%a in (c:\lab1\*.txt) do echo %%a
pause
НО! При этом он выводит кроме имени и расширения еще и путь к файлу. Как от этого можно избавиться?

Отправлено: 20:57, 26-04-2013

 

Аватара для zion87

Старожил


Сообщения: 263
Благодарности: 69

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off & For /f "Delims=" %%a In ("%1%2") Do Echo %%~na & Pause
первый параметр путь %1=c:\lab1\ второй расширение %2=*.txt

Последний раз редактировалось zion87, 26-04-2013 в 21:12.


Отправлено: 21:00, 26-04-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png 1.png
(46.1 Kb, 21 просмотров)

zion87, не выходит. На скриншоте результат

upd1.
файл почему то не вложился. Короче он выдает кроме имени файла и полный путь к нему

Отправлено: 21:25, 26-04-2013 | #3


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


Код: Выделить весь код
@pushd %1 && dir /b /a-d *%2 & popd
Где %1 путь к папке, %2 расширение ( например .txt )

Что такое "КФ" ? Командный файл?

Последний раз редактировалось Foreigner, 26-04-2013 в 22:11.


Отправлено: 21:42, 26-04-2013 | #4


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off & (For %%a In ("%~1%~2") Do Echo %%~na) & Pause>Nul
rem Used: test.bat "e:\Temp 1\" "*.txt"
Цитата Foreigner:
Что такое "КФ" ? »
Очевидно Командный Файл.
Коллега, Ваш вариант выводит имена с расширениями, но может оно и не страшно для ТС, а также папки (у которых есть расширение txt)
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:46, 26-04-2013 | #5


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


Цитата:
Ваш вариант выводит имена с расширениями
Цитата:
Вывод списка файлов с указанным расширением
Можно без @echo off
Код: Выделить весь код
(For %%a In ("%~1%~2") Do @Echo %%~na) & Pause>Nul
rem Used: test.bat "e:\Temp 1\" "*.txt"
Цитата:
а также папки (у которых есть расширение txt)
Исправил

Последний раз редактировалось Foreigner, 26-04-2013 в 22:15.


Отправлено: 22:05, 26-04-2013 | #6


(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


Для меня команда FOR всегда была каким-то дзеном :)

который я так и не постиг...

PowerShell мне легче понять
Код: Выделить весь код
# Example: powershell script.ps1 "C:\folder" "txt"
param($fldr,$ext)
$(dir "$fldr" -filter "*.$ext" | where {-not $_.PSIsContainer }).Name
Сходу тут не читается только условие исключения папок, в имени которых может затесаться .ext
Код: Выделить весь код
 | where {-not $_.PSIsContainer }

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:58, 26-04-2013 | #7


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


Vadikan,
Так тоже можно:
Код: Выделить весь код
(gci *.txt -ex [directoryinfo]).name    # или .basename, если надо без расширения

Последний раз редактировалось Foreigner, 27-04-2013 в 00:48.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:40, 27-04-2013 | #8


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


Цитата:
выводит имена с расширениями
а было в задании выводить имена без расширений?
Код: Выделить весь код
@dir /b/a-d "%~1\*%~2"
rem Use: test.bat "e:\Temp 1" .txt

Отправлено: 03:59, 27-04-2013 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вывод списка файлов с указанным расширением

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Печать файлов с расширением prn Boikov Хочу все знать 8 23-04-2011 18:24
Любой язык - [решено] Вывод списка файлов и их размеров в байтах из заданной папки Vadikan Скриптовые языки администрирования Windows 6 18-03-2011 23:16
Интерфейс - [решено] Проблема с расширением файлов Masis Microsoft Windows 7 2 25-02-2011 17:30
Вывод списка всех служб, запускаемых от определенной учетки. __sa__nya Microsoft Windows NT/2000/2003 1 14-08-2009 15:29
[решено] Вывод списка файлов с полными путями и размерами Grenky Программное обеспечение Windows 16 03-07-2005 22:14




 
Переход