का उपयोग कर तिथि से खोजें तिथि के आधार पर निर्देशिका में फ़ाइलों को खोजने का कोई तरीका है? मैं एक विशिष्ट तारीख से अधिक बनाई गई तारीख के साथ सभी फाइलें खोजना चाहता हूं, क्या यह dir
कमांड के साथ करना संभव है?कमांड लाइन
उत्तर
dir
अपने आप में तिथि के अनुसार फ़िल्टर नहीं कर सकते, लेकिन आप for
कमांड का उपयोग कर dir
के आउटपुट को पार्स कर सकते हैं। यदि आपके देश में dir
वाईएमडी प्रारूप में दिनांक प्रिंट करता है, तो आपको केवल उस तारीख के साथ इसकी तुलना करने की आवश्यकता है। यदि दिनांक भागों का क्रम अलग है, तो आपको तारीख को पार्स करने और इसे YMD में बदलने के लिए for
कमांड का उपयोग करना होगा। यह 5 वीं Februrary के बाद संशोधित फ़ाइलों की एक सूची प्रदर्शित करेगा।
@Echo Off
for /f "usebackq tokens=1,4 skip=5" %%A in (`dir /-c`) do (
if %%A GTR 2012-02-05 echo %%A %%B
)
if
तो अंत में आप अतिरिक्त लाइन सारांश रेखा तुलना गुजरता है, तो प्राप्त कर सकते हैं मानक स्ट्रिंग तुलना करता है,। यह बचने के लिए आप if %%A GTR 2012-02-05 if exist %%B echo %%A %%B
संपादित करें का उपयोग कर सकते हैं: वहाँ और भी बेहतर दृष्टिकोण है जो dir
उत्पादन की पार्स से बचा जाता है और उस तिथि के आधार न केवल समय से खोज की अनुमति देता है, यह है:
@Echo Off
for /r %%A in (*) do (
if "%%~tA" GTR "2012-02-05 00:00" echo %%~tA %%A
)
धन्यवाद, मुझे वही चाहिए जो मैं चाहता हूं, क्या मैं घंटे का उपयोग कर सकता हूं: तुलना के साथ मिनट। अंत में शैल स्क्रिप्टिंग सीखने के लिए उपयोगी किताबें हैं। – developer
तुलना में मिनटों का उपयोग करने के लिए, निम्न परिवर्तन करें: 'टोकन = 1,2,4' और फिर 'अगर%% ए %% बी" जीटीआर "2012-02-05 11:23" echo %% ए %% बी %% सी' सीखने के लिए, आप http://en.wikipedia.org/wiki/Batch_file से शुरू कर सकते हैं और फिर तीन पहले बाहरी लिंक के साथ जारी रख सकते हैं। – MBu
वैसे आप जहाँ तक मुझे पता के रूप में वास्तव में बेकार है जब तक आप एक छोटी तिथि सीमा है नहीं कर सकते, लेकिन लगता है कि इस तरह की काम करेंगे, लेकिन अभी भी;)
for /R %a in (01 02 03 04 05) do dir | find "02/%a/2012"
अच्छा! निर्माण तिथियों के साथ काम करने के लिए 'dir/tc' का प्रयोग करें। – Marc
बस forfiles
आदेश की खोज की ।
forfiles /s /m *.log /d -7 /c "cmd /c echo @path"
, सभी लॉग सात दिन से अधिक पुराने संशोधित फ़ाइलों सूची जाएगा, सभी सबडायरेक्टरियों में हालांकि इसे बनाने की तारीख में देखने के लिए प्रकट नहीं होता। यह एक विशिष्ट तारीख निर्दिष्ट करने का समर्थन करता है।
अधिक जानकारी के लिए forfiles /?
देखें।
सुपर-उपयोगी! (जब कोई PowerShell उपलब्ध नहीं है) नोट: यदि आप किसी दिनांक के बाद संशोधित फ़ाइलों को चाहते हैं तो आपको '/ d' पैरामीटर के लिए' -' की बजाय '+' की आवश्यकता है, इसलिए '-7/05/2012' की बजाय कुछ' -7 '। प्रत्येक फ़ाइल के लिए दिनांक और समय आउटपुट दिखाने के लिए आप 'cmd/c echo @fdate @ftime @ path' – bob
+1 का उपयोग कर सकते हैं यह स्वीकार्य उत्तर –
चेतावनी होना चाहिए: जो आपको इसके साथ यूएनसी पथ का उपयोग करना चाहते हैं, वह शर्त लगाता है। या विंडोज़ में कई अन्य स्थानों में ... –
PowerShell के साथ यह करना आसान है। मुझे पता है कि आपका प्रश्न cmd के बारे में था, लेकिन पीएस 7 और बाद में विंडोज़ में शामिल है। इसे एक्सपी और विस्टा पर भी इंस्टॉल किया जा सकता है।
सभी फ़ाइलों को प्राप्त करने के लिए Get-ChildItem
कमांड (dir
के रूप में उपनाम) का उपयोग करें। आउटपुट को Where-Object
कमांड (?
के रूप में उपनामित) पर पाइप करें ताकि उन तारीखों को वापस कर सकें जहां दिनांक अधिक है (-gt
) एक विशिष्ट तिथि।
PowerShell 2.0 (विंडोज 7 पर डिफ़ॉल्ट), आप एक scriptblock का उपयोग करना चाहिए के लिए:
dir -file | ? {$_.LastWriteTimeUtc -gt ([datetime]"2013-05-01")}
PowerShell 3.0 (Windows 8 पर डिफ़ॉल्ट) और इसके बजाय आप इस सरल वाक्य विन्यास का उपयोग कर सकते हैं के लिए:
dir -file | ? LastWriteTimeUtc -gt ([datetime]"2013-05-01")
dir -file
कमांड System.IO.FileInfo
ऑब्जेक्ट्स का संग्रह देता है। इस फ़ाइल ऑब्जेक्ट में कई गुण हैं जिनका उपयोग आप जटिल फ़िल्टरिंग (फ़ाइल आकार, निर्माण दिनांक इत्यादि) के लिए कर सकते हैं। दस्तावेज के लिए MSDN देखें।
मैंने कोशिश की: डीआईआर। * एसएसजीजी | ? LastWriteTimeUtc -gt ([डेटाटाइम] "2013-05-01") लेकिन "ऑब्जेक्ट: पैरामीटर" फ़िल्टरस्क्रिप्ट को बाध्य नहीं कर सकता है। "System.String " टाइप करने के लिए "LastWriteTimeUtc" मान को परिवर्तित नहीं किया जा सकता है "सिस्टम। प्रबंधन .ऑटोमेशन.स्क्रिप्टब्लॉक "। –
मैं जिस वाक्यविन्यास का उपयोग करता हूं, वह PS 3.0 के लिए काम करता है और मुझे विश्वास है। अगर आपके पास PS 1.0 या 2.0 है, तो आपको एक स्क्रिप्टब्लॉक का उपयोग करना चाहिए:' |? {$ _। LastWriteTimeUtc -gt ([डेटाटाइम] "2013-05-01")} ' – bouvierr
आह मैं पीएस 2 के साथ विंडोज 7 पर हूं। धन्यवाद –
मेरे लिए एक आसान तरीका की तरह
dir /s *.xlsx | find "07/14/2016"
- 1. कमांड लाइन कमांड
- 2. कमांड लाइन - कमांड लूप
- 3. कमांड लाइन
- 4. कमांड लाइन
- 5. कमांड-लाइन
- 6. कमांड लाइन
- 7. कमांड लाइन
- 8. कमांड लाइन
- 9. कमांड लाइन
- 10. कमांड लाइन
- 11. कमांड लाइन
- 12. कमांड लाइन
- 13. कमांड लाइन
- 14. कमांड लाइन
- 15. कमांड लाइन
- 16. कमांड लाइन
- 17. कमांड लाइन
- 18. कमांड लाइन
- 19. कमांड लाइन
- 20. कमांड लाइन
- 21. कमांड लाइन
- 22. कमांड लाइन
- 23. कमांड लाइन
- 24. कमांड लाइन
- 25. कमांड लाइन
- 26. कमांड लाइन
- 27. कमांड लाइन
- 28. कमांड लाइन
- 29. कमांड लाइन
- 30. कमांड लाइन
'dir कुछ/OD', तिथि के अनुसार छाँटें होगा कम से कम – nolegs
dir नहीं कर सकते हैं, लेकिन लगता है यूनिक्स कमांड * कर सकते है *। [यहां उपलब्ध डॉस पोर्ट] (http://sourceforge.net/projects/unxutils/) –
सुपरयूसर पर http://superuser.com/a/326025/3588 वास्तव में –