प्राप्त फ़ाइलों को जिनकी तिथि में नाम है की तुलना में अधिक कुछ विशिष्ट तिथि का उपयोग कर Powershell स्क्रिप्ट

0

सवाल

मैं एक विशिष्ट तिथि "2021/11/28", मैं करना चाहते हैं फ़ाइलों की सूची से उदाहरण फ़ाइल नामों(नीचे) जिसका फ़ाइल नाम की तुलना में अधिक है 2021/11/28. याद नहीं निर्माण के समय फाइल के नाम ।

 "test_20211122_aba.*"
 "abc_20211129_efg.*"
 "hij_20211112_lmn.*" 
 "opq_20211130_rst.*"

मैं उम्मीद कर रहा हूँ प्राप्त करने के लिए

 "abc_20211129_efg.*"
 "opq_20211130_rst.*"

सच में तुम्हारी मदद की सराहना.

powershell powershell-4.0
2021-11-23 18:40:47
1

सबसे अच्छा जवाब

1

आप कड़ाई की जरूरत नहीं पार्स करने के लिए अपने तार में दिनांक ([datetime] उदाहरण): क्योंकि तारीख स्ट्रिंग में एम्बेडेड अपनी फ़ाइल के नाम कर रहे हैं एक प्रारूप में, जहां उनके शाब्दिक छँटाई करने के लिए बराबर है कालानुक्रमिक छँटाई, आप की तुलना कर सकते हैं स्ट्रिंग अभ्यावेदन सीधे:

# Simulate output from a Get-ChildItem call.
$files = [System.IO.FileInfo[]] (
  "test_20211122_aba1.txt",
  "abc_20211129_efg2.txt",
  "hij_20211112_lmn3.txt",
  "hij_20211112_lmn4.txt",
  "opq_20211130_rst5.txt"
)

# Filter the array of files.
$resultFiles = 
  $files | Where-Object {
    $_.Name -match '(?:^|.*\D)(\d{8})(?:\D.*|$)' -and
      $Matches[1] -gt ('2021/11/28"' -replace '/')
   }

# Print the names of the filtered files.
$resultFiles.Name
  • $_.Name -match '(?:^|.*\D)(\d{8})(?:\D.*|$)' के लिए लग रहा है (पिछले) को चलाने के लिए वास्तव में 8 अंक में प्रत्येक फ़ाइल का नाम के माध्यम से एक पर कब्जा समूह ((...)) में परिलक्षित होता है, स्वत: $Matches चर के प्रवेश के साथ सूचकांक 1 ($Matches[1]) बाद में, अगर मिल गया.

  • '2021/11/28"' -replace '/' सभी हटा / पात्रों में से इनपुट स्ट्रिंग बनाने के लिए, प्रारूप तारीख के तार एक ही. संक्षिप्तता के लिए, ऊपर समाधान करता है इस प्रतिस्थापन में प्रत्येक पाश आपरेशन. अभ्यास में, आप प्रदर्शन होगा, यह एक बारसे पहले, पाश, और आवंटित करने के लिए परिणाम के लिए एक चर के अंदर का उपयोग पाश ।

2021-11-23 20:35:51

यकीन है, मैं जल्दी ही होगा । किसी भी तरह मैं नहीं देख सकता था मेरे पिछले टिप्पणी. टिप्पणी फिर से " कमाल है! अपने कोड काम किया है की तरह एक आकर्षण है । धन्यवाद एक टन है"
Razz

सकता है आप, pls मदद. मैं पर काम कर रहा हूँ अन्य स्क्रिप्ट की आवश्यकता है जो की तुलना करने के लिए ही आज की तारीख के साथ. कुछ इस तरह..लेकिन मैं कर रहा हूँ स्वरूपण मुद्दा । Where-Object {$_.Name -match '(?:^|.*\D)(\d{8})(?:\D.*|$)' -and $Matches[1] -eq (Get-Date).Date}
Razz

@Razz, की जगह (Get-Date).Date के साथ (Get-Date).ToString('yyyyMMdd'). यदि आप और अधिक मदद की जरूरत है, कृपया बनाने के लिए एक नया प्रश्न पोस्ट.
mklement0

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में