Saya mencari cara di Windows untuk mendaftar semua file dalam direktori dan subdirektori yang diberikan, diurutkan sehingga file terbaru ada di atas. Apakah ada cara mudah untuk melakukan ini? Saya juga setuju untuk skrip Perl.
windows
command-line
script
Tidur
sumber
sumber
my $dir = ($#ARGV >= 0 ? $ARGV[0] : '.');
sehingga akan memindai direktori saat ini jika parameter direktori tidak diberikan, dan untuk memasukkan waktu yang dicetak:print strftime('%Y-%m-%d %H:%M:%S', localtime((stat($key))[9])) . " $key\n";
$files{$key}
jika Anda ingin menggunakannyastrftime
saat mencetak untuk menghindari panggilan keduastat()
. Jika Anda berencana untuk memipakannya ke program lain, saya juga memodifikasinya untuk menampilkan path lengkap dari nama file. Anda dapat mengambilnya di sini: pastebin.ca/1797748Seperti ini:
dir /s /o:-d
sumber
Jika Anda memiliki cygwin atau sejenisnya diinstal maka
find . -type f | xargs ls -tr
akan melakukan trik. Anda hampir pasti dapat melakukan hal serupa dengan Microsoft PowerShell.sumber
Jika Anda menggunakan Semuanya , cukup ketik lintasan dan urutkan berdasarkan Tanggal Dimodifikasi dan Anda akan mendapatkan semua file dalam folder ini dalam urutan itu, terlepas dari subdirektori.
Semuanya freeware, versi portabel tersedia.
sumber
Jika Anda tidak keberatan coding (meskipun ini membawa pertanyaan ke wilayah Stack Overflow) maka ada kelas
Directory
danFile
di C #.The
GetFiles
metode memiliki kelebihan yang akan mengembalikan semua nama file di semua subdirektori. Anda kemudian dapat mengulang daftar ini, meneleponGetLastWriteTime
untuk mendapatkan tanggal / waktu yang dimodifikasi. Menyimpan nama dan waktu dalam kamus, mengurutkan waktu dan mencetak nama file.Ada juga kelas
DirectoryInfo
danFileInfo
.Saya seharusnya menambahkan bahwa semua fungsi ini tersedia melalui Powershell , jadi Anda tidak memiliki akses ke IDE penuh.
sumber
Jika Anda memiliki sesuatu seperti Git Bash atau Cygwin yang diinstal, Anda seharusnya dapat menggunakan salah satu jawaban dari sini: /programming/4561895/how-to-recursively-find-the-latest-modified -file-in-a-direktori
Salah satu yang bekerja dengan baik untuk saya adalah:
find . -type f -printf '%TF %TT %p\n' | sort -r
Anda juga dapat menambahkan
| head -10
hingga akhir untuk melihat 10 yang terbaru, katakanlah.sumber