2013-08-23 2 views
7

У меня есть каталог, содержащий много подкаталогов. Внутри этих подкаталогов находятся файлы .asf, .jpg, & .txt. Я хотел бы перечислить все * .asf файлы в каталоге и подкаталоге, но без имени пути.Как перечислить все файлы в каталоге/подкаталоге без имени пути CMD?

Так что в основном я хочу выполнить команду dir/s, но не отображать полное имя пути. Есть какой-либо способ сделать это.

ответ

3

попробовать это на строке CMD оболочки:

for /r %a in (*.asf) do @echo %~tza %~nxa 

только имя:

for /r %a in (*.asf) do @echo %~nxa 
+0

Чем вы так много. Это действительно помогло мне. :) –

3

Вы можете попробовать

dir /s | findstr .asf 

Edit: Я думаю, что это поможет. Это мой test.bat

@echo off 
for /f "usebackq TOKENS=*" %%i in (`dir /s /b *.txt`) do echo %%~nxi 
pause 

/f usebackq говорит, что все внутренние обратные кавычки выполняются как дос команда

TOKENS=* разбирает имена файлов с пробелами также.

echo %%~nxi - n перечисляет только имена файлов и x перечисляет только расширение. Объединение обоих отображает имя файла и расширение.

Редактировать: usebackq не требуется, вместо этого может использоваться одна кавычка.

+0

Спасибо за ваш ответ. Однако это все еще указывает полный путь к каждому файлу, я хотел бы просто извлечь «filename.asf». – Nicknz125

+0

@ Nicknz125 plz см. Править. –

+0

'usebackq' означает, что схема цитирования изменилась, ** не ** следует команда. См. 'For /?' Для справки. Вам здесь не нужен 'usebackq'. – Endoro

4

Проверил:

FORFILES /S /C "CMD /C ECHO @relpath" 
+0

Это отлично. Работает фантастически! –

7

Очень поздно, но может быть кому-то полезным. Я предполагаю, что он просит для этой команды одна линия

forfiles /m *.asf /s >d:\Hitendra.Txt

здесь, как вы все знаете, после этого (>) Я сохраняю результат в D диск моего компьютера с имя файла Hitendra. Txt

+0

Спасибо, это то, что я ищу. – deathlock

 Смежные вопросы

  • Нет связанных вопросов^_^