Bagaimana cara mendaftarkan nama file secara rekursif (hanya) di DOS / Windows? [duplikat]


20

Kemungkinan Duplikat:
Dapatkan nama file kosong secara rekursif di command prompt

Saya ingin mendaftarkan semua file secara rekursif dalam direktori, hanya menampilkan nama file (tanpa ekstensi dan tanpa path lengkap). Saya menggunakan Windows / DOS.

Yang paling dekat dengan saya diradalah dir /s /b, tetapi daftar jalur lengkap dan juga menunjukkan ekstensi.

Yah, mungkin saya bisa hidup dengan ekstensi, tetapi saya harus menyingkirkan jalan!

Ada ide?


1
Versi windows yang mana?
OldWolf

OOldWolf: XP. Saya lebih suka tidak menggunakan perangkat lunak pihak ketiga /
David B

Jawaban:


28
cd /d C:\Path\To\Source\Folder
for /r %i in (*) do @echo %~ni

Jika Anda perlu daftar disimpan ke file, tambahkan >> C:\Path\To\list_file.txtke akhir forperintah.

Jika Anda akhirnya menginginkan ekstensi, ubah %~nike%~nxi

Untuk digunakan dalam file batch, ubah semua %ke%%


6
Jika Anda memerlukan path dan nama dan ekstensi, ubah% ~ ni menjadi% ~ pnxi
Jauh

ini berfungsi tetapi tidak menampilkan file tersembunyi. Bagaimana saya bisa melihat file yang disembunyikan?
ala

@ala: Jika Anda ingin menampilkan file tersembunyi, Anda harus menggunakan sesuatu seperti jawaban David Remy hanya dengan tanda yang sesuai diteruskan ke dirperintah.
afrazier

7

Jika Anda bersedia memuat PowerShell, perintah ini harus melakukannya.

get-childitem "d:\acc" -recurse|foreach {$_.Basename}

5

Melakukan sesuatu seperti berikut ini akan memberi Anda apa yang Anda inginkan:

@for /f "delims=" %a in ('Dir /s /b %systemdrive%') do echo %~na

Hanya pipa output ke file dan gunakan dari sana jika diperlukan.


3

Tidak tahu apakah Anda akan menganggapnya perangkat lunak pihak ke-3 atau tidak karena merupakan bentuk Microsoft dan dilengkapi dengan 7, tetapi PowerShell akan menyelesaikan sebagian besar masalah Anda dengan mudah. Jika Anda belum menginstalnya, tersedia untuk XP di situs Microsoft.

Get-ChildItem -path "C:\Program Files\" -recurse | foreach ($_) {
    write $_.name
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.