Пакетний файл; Список файлів у каталозі, лише імена файлів?


120

Це, мабуть, дуже просте запитання, але у мене виникають проблеми. В основному я намагаюся написати пакетний файл, і мені він потрібен, щоб перерахувати всі файли у певній папці. dirКоманда буде робити це, але це також дає купу іншої інформації; Я хочу, щоб він передавав ТОЛЬКІ назви файлів та виключав будь-що інше.

Я просто хочу, щоб результат виглядав так:

file1.txt
file2.txt
file3.txt

Спасибі заздалегідь!


Відповіді:


236

Повна команда:

dir /b /a-d

Дозвольте мені розбити це;

В основному /bце те, що ви шукаєте.

/a-d виключить імена каталогів.


Для отримання додаткової інформації див. dir /?Інші аргументи, які можна використовувати з dirкомандою.


8
Добре для мене :) dir /b /a-d > tmp.txt
Stéphane GRILLON

2
Він також не працює, /Sщоб отримати імена файлів підкаталогів.
Farhan Ghumra

@xyroid ти читав селтен /a-d will the exclude directory names?
Стефан

4
Це не виключає, якщо я хочу надрукувати назви файлів підкаталогів.
Фархан Гумра

Це було дуже близько до того, що мені було потрібно. Мені потрібні були абсолютні шляхи та рекурсія у підкаталоги. Ось що я використав:dir /B /A-D /S
EmpathicSage

34

Ви також можете спробувати це:

for %%a in (*) do echo %%a

Використовуючи forцикл, ви можете echoвикреслити всі назви файлів поточного каталогу.

Щоб надрукувати їх безпосередньо з консолі:

for %a in (*) do @echo %a

7

Якщо вам також потрібні підкаталоги, вам потрібна команда "dir" та команда "For"

dir /b /s DIRECTORY\*.* > list1.txt

for /f "tokens=*" %%A in (list1.txt) do echo %%~nxA >> list.txt

del list1.txt

помістіть свій кореневий каталог у команду dir. Він створить list1.txt з повними іменами шляху, а потім list.txt лише з іменами файлів.


5

1.Закрийте блокнот

2.Створіть новий файл

3. тип нижньої лінії

dir /b > fileslist.txt

4.Збережіть " list.bat"

Це воно. тепер ви можете скопіювати та вставити цей list.batфайл у будь-яке місце вашої папки та двічі клацнути по ньому, це створить ""fileslist.txt " разом із цією папкою та списком імен файлів.

Вибірка зразка: введіть тут опис зображення

Примітка. Якщо ви хочете створити список назв файлів разом із підпапками, тоді ви можете створити пакетний файл із наступним кодом.

dir /b /s > fileslist.txt

2
Що робити, якщо я не хочу, щоб вихідний файл "fileslist.txt" був включений до списку?
Бенам

4
  • Чому б не використовувати whereзамість цього dir?

У командному рядку:

for /f tokens^=* %i in ('where .:*')do @"%~nxi"

У файлі bat / cmd:

@echo off 

for /f tokens^=* %%i in ('where .:*')do %%~nxi
  • Вихід:

file_0003.xlsx
file_0001.txt
file_0002.log
where .:*
  • Вихід:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log

Для рекурсивно:

where /r . *
  • Вихід:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0004.docx
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0005.csv
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0006.odt
  • Для циклу отримайте шлях та ім'я:

  • У командному рядку:
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
  • У файлі bat / cmd:
@echo off 

for /f tokens^=* %%i in ('where .:*')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • Вихід:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log

  • Для циклу отримуйте шлях та ім’я рекурсивно:

У командному рядку:

for /f tokens^=* %i in ('where /r . *')do @echo/ Path: %~dpi ^| Name: %~nxi

У файлі bat / cmd:

@echo off 

for /f tokens^=* %%i in ('where /r . *')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • Вихід:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0004.docx
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0005.csv
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0006.odt


2

Windows 10:

  1. відкритий cmd

  2. змінити каталог, у якому потрібно створити текстовий файл (movie_list.txt) для папки (d: \ videos \ movies)

  3. введіть наступну команду

    d: \ videos \ movies> dir / b / ad> movie_list.txt


2

створити пакетний файл із таким кодом:

dir %1 /b /a-d > list.txt

Потім перетягніть на нього каталог і файли всередині каталогу будуть вказані у list.txt


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.