मैं किसी निर्देशिका और उसके उपनिर्देशिकाओं में सभी फाइलों को सूचीबद्ध करने के लिए विंडोज में एक रास्ता खोज रहा हूं, ताकि क्रमबद्ध हो ताकि नवीनतम फाइलें शीर्ष पर हों। क्या ऐसा करने का कोई आसान तरीका है? मैं एक पर्ल स्क्रिप्ट के लिए भी सेटल होता।
मैं किसी निर्देशिका और उसके उपनिर्देशिकाओं में सभी फाइलों को सूचीबद्ध करने के लिए विंडोज में एक रास्ता खोज रहा हूं, ताकि क्रमबद्ध हो ताकि नवीनतम फाइलें शीर्ष पर हों। क्या ऐसा करने का कोई आसान तरीका है? मैं एक पर्ल स्क्रिप्ट के लिए भी सेटल होता।
जवाबों:
यदि आप अभी भी एक स्क्रिप्टेड समाधान में रुचि रखते हैं, तो मैंने जल्दी से एक साथ कुछ फेंक दिया है जो सभी निर्देशिकाओं से एक साथ फाइल प्रदर्शित करेगा:
#!C:/Perl/bin/perl.exe
use File::Find;
my %files = ();
sub process
{
$files{$_} = (stat($_))[9] unless -d $_;
}
find (\&process, $ARGV[0]);
foreach my $key(sort {$files{$b} <=> $files{$a}} keys %files)
{
print "$key\n";
}
फ़ाइलों को सबसे पुराना करने के लिए नवीनतम प्रदर्शित किया जाता है, केवल फ़ाइल नाम दिखा रहा है। इस तरह आप आसानी से प्रसंस्करण के लिए एक और उपकरण के लिए इस स्क्रिप्ट के उत्पादन में अतिरिक्त उत्पादन अलग करने के बारे में चिंता किए बिना पाइप कर सकते हैं।
उपयोग: perl find.pl <starting_directory>
my $dir = ($#ARGV >= 0 ? $ARGV[0] : '.');
ताकि यह डायरेक्ट डाइर को स्कैन करे अगर डायरेक्टरी पैरामीटर नहीं दिया गया है, और जो समय प्रिंट हुआ है उसे शामिल करने के लिए:print strftime('%Y-%m-%d %H:%M:%S', localtime((stat($key))[9])) . " $key\n";
$files{$key}
यदि आप उस का उपयोग करना चाहते हैं strftime
जब मुद्रण के लिए दूसरी कॉल से बचने के लिए stat()
। यदि आप इसे किसी अन्य प्रोग्राम में पाइप करने की योजना बना रहे हैं, तो मैंने इसे फ़ाइल नाम का पूरा पथ प्रदर्शित करने के लिए भी संशोधित किया है। आप इसे यहाँ ले सकते हैं: pastebin.ca/1797748
यदि आपके पास साइबरविन या समान स्थापित है तो find . -type f | xargs ls -tr
चाल चलेगा। आप लगभग निश्चित रूप से Microsoft के शक्तियां के साथ ऐसा ही कर सकते हैं।
यदि आप सब कुछ का उपयोग कर रहे हैं , तो डेट मॉडिफाइड द्वारा पथ और क्रमबद्ध करें और उपनिर्देशिका की परवाह किए बिना आपको इस फ़ोल्डर में सभी फाइलें मिलेंगी।
सब कुछ फ्रीवेयर है, एक पोर्टेबल संस्करण उपलब्ध है।
यदि आपको कोडिंग से कोई आपत्ति नहीं है (हालांकि यह स्टैक ओवरफ्लो क्षेत्र में सवाल उठाता है) तो C # में क्लासेस Directory
और File
क्लास हैं।
GetFiles
विधि एक अधिभार है कि सभी उप-निर्देशिकाओं के सभी फ़ाइल नाम वापस आ जाएगी है। फिर आप इस सूची GetLastWriteTime
को बदल सकते हैं, संशोधित तिथि / समय प्राप्त करने के लिए बुला सकते हैं। एक शब्दकोश में नाम और समय को संग्रहीत करें, समय पर छाँटें और फ़ाइल नाम प्रिंट करें।
वहाँ भी है DirectoryInfo
और FileInfo
कक्षाएं।
मुझे यह जोड़ना चाहिए था कि यह सब कार्यक्षमता Powershell के माध्यम से उपलब्ध है , इसलिए आपके पास पूर्ण IDE तक पहुंच नहीं है।
यदि आपके पास Git Bash या Cygwin जैसी कोई चीज़ स्थापित है, तो आपको यहाँ से किसी एक उत्तर का उपयोग करने में सक्षम होना चाहिए: /programming/4561895/how-to-recursively-find-the-latest-modified -file में एक-निर्देशिका
मेरे लिए अच्छा काम करने वाला व्यक्ति है: find . -type f -printf '%TF %TT %p\n' | sort -r
आप | head -10
केवल 10 सबसे हाल ही में देखने के लिए उस के अंत में भी जोड़ सकते हैं , कहते हैं।