File Batch; Daftar file dalam direktori, hanya nama file?

120

Ini mungkin pertanyaan yang sangat sederhana, tetapi saya mengalami masalah. Pada dasarnya, saya mencoba menulis File Batch dan saya membutuhkannya untuk mencantumkan semua file dalam direktori tertentu. The dirperintah akan melakukan hal ini, tetapi juga memberikan banyak informasi lainnya; Saya ingin daftar HANYA nama file dan mengecualikan yang lainnya.

Saya hanya ingin hasilnya terlihat seperti ini:

file1.txt
file2.txt
file3.txt

Terima kasih sebelumnya!

pengguna3558570
sumber

Jawaban:

236

Perintah lengkapnya adalah:

dir /b /a-d

Biarkan saya memecahnya;

Pada dasarnya, /bitulah yang Anda cari.

/a-d akan mengecualikan nama direktori.


Untuk informasi selengkapnya, lihat dir /?argumen lain yang bisa Anda gunakan dengan dirperintah.

Stephan
sumber
8
Tidak apa-apa bagi saya :) dir /b /a-d > tmp.txt
Stéphane GRILLON
2
Itu tidak bekerja dengan /Suntuk mendapatkan nama file dari sub-direktori juga.
Farhan Ghumra
@xyroid apakah Anda membaca seltene /a-d will the exclude directory names?
Stephan
4
Tidak terkecuali jika saya ingin mencetak nama file sub-direktori.
Farhan Ghumra
Ini sangat dekat dengan apa yang saya butuhkan. Saya membutuhkan jalur absolut dan rekursi ke dalam subdirektori. Inilah yang saya gunakan:dir /B /A-D /S
EmpathicSage
34

Anda juga dapat mencoba ini:

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

Dengan menggunakan forperulangan, Anda dapat echomengetahui semua nama file dari direktori saat ini.

Untuk mencetaknya langsung dari konsol:

for %a in (*) do @echo %a
npocmaka
sumber
7

Jika Anda membutuhkan subdirektori juga, Anda memerlukan perintah "dir" dan perintah "For"

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

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

del list1.txt

letakkan direktori root Anda di perintah dir. Ini akan membuat list1.txt dengan nama path lengkap dan kemudian list.txt dengan hanya nama file.

Mike_Gre
sumber
5

1. Buka notepad

2. Buat file baru

3. ketik garis bawah

dir /b > fileslist.txt

4. Simpan " list.bat"

Itu dia. sekarang Anda dapat menyalin & menempelkan list.batfile " " ini di mana saja dari lokasi folder Anda dan klik dua kali, ini akan membuat " fileslist.txt" bersama dengan folder direktori dan daftar nama file.

Keluaran Sampel: masukkan deskripsi gambar di sini

Catatan: Jika Anda ingin membuat daftar nama file beserta sub foldernya, maka Anda dapat membuat file batch dengan kode di bawah ini.

dir /b /s > fileslist.txt
Premkumar Manipillai
sumber
2
Bagaimana jika saya tidak ingin file keluaran "fileslist.txt" dimasukkan dalam daftar?
Behnam
4
  • Mengapa tidak digunakan wheresaja dir?

Di baris perintah:

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

Dalam file bat / cmd:

@echo off 

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

file_0003.xlsx
file_0001.txt
file_0002.log
where .:*
  • Keluaran:

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

Untuk secara rekursif:

where /r . *
  • Keluaran:

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
  • Untuk loop dapatkan jalur dan nama:

  • Di baris perintah:
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
  • Dalam file bat / cmd:
@echo off 

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

 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

  • Untuk perulangan, dapatkan jalur dan nama secara rekursif:

Di baris perintah:

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

Dalam file bat / cmd:

@echo off 

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

 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

Itu Bukan Aku
sumber
2

Windows 10:

  1. buka cmd

  2. ubah direktori tempat Anda ingin membuat file teks (movie_list.txt) untuk folder (d: \ videos \ film)

  3. ketik perintah berikut

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

nanthaa.ks
sumber
2

buat file batch dengan kode berikut:

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

Kemudian drag & drop direktori di atasnya dan file di dalam direktori tersebut akan terdaftar di list.txt

Dennis
sumber
0

dir / s / d / a: -d "jalur folder *. *"> file.txt

Dan, hilangkan / s jika Anda tidak membutuhkan file dari subfolder

Varun Chandurthi
sumber