यहां परिदृश्य है: हमारे पास एक उत्पादन वेब सर्वर है जिसमें कुछ हज़ार फाइलें और फ़ोल्डर्स हैं जिनके पास "_DATE" संलग्न है। हम उन्हें एक अस्थायी फ़ोल्डर में ले जाना चाहते हैं (सुनिश्चित करें कि वे उपयोग में नहीं हैं), और बाद की तारीख में फ़ाइलों को हटा दें।पावरशेल: रेगेक्स वैल्यू के आधार पर फ़ाइलों को कॉपी/ले जाएं, फ़ोल्डर संरचना को बनाए रखना,
मैं उपयोग कर सकते हैं:
Get-ChildItem -Path W:\IIS -Recurse | Where-Object{$_.Name -match "_\d{8,10}$"}
सभी फ़ाइलें/फ़ोल्डर और उनके स्थानों की एक सूची प्राप्त करने के लिए। लेकिन उन्हें मैन्युअल रूप से हटाने से बहुत सारे काम की तरह लगता है, खासकर यदि भविष्य में इसकी आवश्यकता है।
cls
$source = "W:\IIS"
$destination = "C:\Temp\DevTest"
foreach ($i in Get-ChildItem -Path $source -Recurse)
{
if ($i.Name -match "_\d{8,10}$")
{
Copy-Item -Path $i.FullName -Destination $item.FullName.ToString().Replace($source,$destination).Trim($item.Name)
}
}
और:: मैं कुछ उदाहरण है कि लगभग मैं क्या चाहते हो पाया है
cls
$source = "W:\IIS"
$destination = "C:\Temp\DevTest"
$bin = Get-ChildItem -Path $source -Recurse | Where-Object{$_.Name -match "_\d{8,10}$"}
foreach ($item in $bin) {
Copy-Item -Path $item.FullName -Container -Destination $item.FullName.ToString().Replace($source,$destination).Trim($item.Name) -Recurse
}
इन दोनों के साथ मुद्दा यह है कि जब मैं उन्हें सिर्फ कॉपी-आइटम के साथ परीक्षण मैं एक साथ खत्म कर रहे हैं फ्लैट निर्देशिका, और मुझे निर्देशिका संरचना को संरक्षित करने की आवश्यकता है ताकि यदि चाल गलत हो जाए तो मैं वापस कर सकता हूं (अधिमानतः सभी फ़ोल्डरों को आईआईएस फ़ोल्डर में खींचकर छोड़कर) या मुझे कई अतिरिक्त फ़ोल्डरों/फ़ाइलों की एक प्रति प्राप्त होती है जब मैं पहली कमांड चलाता हूं तो प्रकट न करें।
का मेरा पहला आदेश में संशोधन:
Get-ChildItem -Path W:\IIS -Recurse | Where-Object{$_.Name -match "_\d{8,10}$"} | Copy-Item -Container -Destination C:\Temp\DevTest -Recurse
सब कुछ मैं जरूरत है कॉपी करेंगे, लेकिन एक फ्लैट निर्देशिका वृक्ष के साथ, बजाय वृक्ष संरचना को बनाए रखना है (लेकिन गंतव्य के साथ स्रोत निर्देशिका प्रतिस्थापन)।
कोई सुझाव/टिप्पणियां?
आह, मैंने नहीं देखा [manojlds का उत्तर] (http://stackoverflow.com/questions/7893919/powershell-copy-move-files-based-on-a-regex-value-retaining-the-folder -स्ट्रक्चर/7895211 # 7895211) अभी तक:] – mousio