Toplu Dosya; Dizindeki dosyaları listelemek, sadece dosya adları?


120

Muhtemelen bu çok basit bir soru, ama sorun yaşıyorum. Temel olarak, bir Toplu İş Dosyası yazmaya çalışıyorum ve belirli bir dizindeki tüm dosyaları listelemeye ihtiyacım var. dirKomut yapacak, ama aynı zamanda diğer bilgileri bir demet verir; YALNIZCA dosya adlarını listelemesini ve diğer her şeyi hariç tutmasını istiyorum .

Sadece çıktının şöyle görünmesini istiyorum:

file1.txt
file2.txt
file3.txt

Şimdiden teşekkürler!


Yanıtlar:


236

Tam komut:

dir /b /a-d

Ayrılmama izin ver;

Temelde /baradığınız şey bu.

/a-d dizin adlarını hariç tutacaktır.


Daha fazla bilgi dir /?için, dirkomutla kullanabileceğiniz diğer argümanlara bakın .


8
Benim için uygun mu :) dir /b /a-d > tmp.txt
Stéphane GRILLON

2
/SAlt dizinlerin dosya adlarını almak için de işe yaramaz .
Farhan Ghumra

@xyroid seltene'yi okudun /a-d will the exclude directory namesmu?
Stephan

4
Alt dizinlerin dosyalarının adlarını yazdırmak istiyorsam hariç tutulmuyor.
Farhan Ghumra

Bu ihtiyacım olana çok yakındı. Alt dizinlere mutlak yollara ve özyinelemeye ihtiyacım vardı. İşte kullandım:dir /B /A-D /S
EmpathicSage

34

Ayrıca şunu da deneyebilirsiniz:

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

Bir fordöngü kullanarak echo, geçerli dizinin tüm dosya adlarını çıkarabilirsiniz .

Bunları doğrudan konsoldan yazdırmak için:

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

7

Alt dizinlere de ihtiyacınız varsa, bir "dir" komutuna ve "For" komutuna ihtiyacınız vardır.

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

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

del list1.txt

kök dizininizi dir komutuna koyun. Tam yol adlarıyla bir list1.txt ve ardından yalnızca dosya adlarıyla bir list.txt oluşturur.


5

1. not defteri açın

2. yeni dosya oluşturun

3. tip feryat hattı

dir /b > fileslist.txt

4. " list.bat" öğesini kaydedin

Bu kadar. artık bu " list.bat" dosyayı klasör konumunuzdan herhangi birine kopyalayıp yapıştırabilir ve üzerine çift tıklayabilirsiniz, bu fileslist.txtdizin klasörü ve dosya adı listesiyle birlikte bir " " oluşturacaktır .

Örnek Çıktı: görüntü açıklamasını buraya girin

Not: Alt klasörle birlikte dosya adı listesi oluşturmak istiyorsanız, aşağıdaki kodla toplu iş dosyası oluşturabilirsiniz.

dir /b /s > fileslist.txt

2
"Fileslist.txt" çıktı dosyasının listeye dahil edilmesini istemezsem ne olur?
Behnam

4
  • Neden wherebunun yerine kullanmıyorsunuz dir?

Komut satırında:

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

Yarasa / cmd dosyasında:

@echo off 

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

file_0003.xlsx
file_0001.txt
file_0002.log
where .:*
  • Çıktı:

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

Özyinelemeli olarak:

where /r . *
  • Çıktı:

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
  • Döngü için yolu ve adı alın:

  • Komut satırında:
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
  • Yarasa / cmd dosyasında:
@echo off 

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

 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

  • Döngü için, yolu ve adı özyinelemeli olarak alın:

Komut satırında:

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

Yarasa / cmd dosyasında:

@echo off 

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

 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. açık cmd

  2. (d: \ videos \ movies) klasörü için metin dosyası (movie_list.txt) oluşturmak istediğiniz dizini değiştirin

  3. aşağıdaki komutu yazın

    d: \ videolar \ filmler> dir / b / ad> movie_list.txt


2

Aşağıdaki kodla bir toplu iş dosyası oluşturun:

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

Ardından üzerine bir dizini sürükleyip bırakın ve dizinin içindeki dosyalar list.txt dosyasında listelenecektir.


0

dir / s / d / a: -d "klasör yolu *. *"> dosya.txt

Ve alt klasörlerdeki dosyalara ihtiyacınız yoksa / 'leri kaybedin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.