Saya mengalami hambatan kecil yang mencoba hanya mendapatkan nama file (tidak ada ekstensi atau path file) secara rekursif. Ini bekerja untuk saya di folder root:
dir /b
Tetapi ketika saya menambahkan / s untuk memindai secara rekursif saya juga mendapat path file sebelum nama file yang tidak saya inginkan. Apakah ada cara untuk mendapatkan nama file kosong dari semua subfolder dalam direktori?
Saya pada Windows 7 x64 Saya lebih suka menggunakan command prompt biasa bukan PS atau VBS
Coba ini:
Informasi lebih lanjut tentang cara kerja dan apa yang dikerjakannya, ketik
for /?
sumber
>> filename.txt
atau
dengan asumsi file
noquotes.bat
dalam % PATH% Anda dengan konten iniuntuk / r pendekatan dijelaskan
for /r
berjalan direktori saat ini secara rekursif (Anda dapat menentukan direktorifor /r drive:\path\
, direktori saat ini diasumsikan) dan mengeksekusi perintah yang ditentukan oleh do untuk setiap file yang cocok dalam set(*)
. Set(.)
hanya akan cocok dengan direktori. @echo% ~ ni Perintah ini berfungsi apa adanya dari prompt. Gandakan kutipan Anda jika Anda memasukkannya ke dalam file batch. yaitufor /r %%i in (*) do @echo %%~ni
Pendekatan forfiles menjelaskan
/s
menghitung saat ini dan semua subdirektori/c
mengeksekusi perintah di dalam tanda kutip@isdir
dan@fname
merupakan simbol yang dipancarkan ke dalam string perintahFile batch tambahan
noquotes.bat
membantu dengan menghapus tanda kutip ganda dengan% ~ 1 (parameter 1)forfiles
juga memungkinkan Anda menentukan jalur untuk memulai diforfiles /P C:\Windows ...
sumber
Daftar semua file, kosong, secara rekursif, menggunakan atribut (bukan direktori) (hanya file)
dir / B / S / A: -D
C: \ test \ cache> dir / B / S / A: -D
C: \ test \ cache \ 7 \ 0f \ 7b50ed0522645513da90345120eaf0f7 C: \ test \ cache \ d \ 23 \ 814644aa6a8195c91e54d2f7bb64e23d
sumber
dir /b /s
] memindai secara rekursif, saya juga mendapat path file sebelum nama file, yang tidak saya inginkan. ”Jadi, Anda memberi tahu OP untuk mencoba variasi yang sepele tentang apa yang telah mereka coba, dan jawaban Anda menunjukkan bahwa ia menghasilkan hasil yang sama seperti ketika OP mencobanya (yaitu, bukan apa yang mereka inginkan).