मैं पॉवर्सशेल के लिए शुरुआत कर रहा हूं और मुझे छोटी स्क्रिप्ट की जरूरत है। वास्तव में मैंने अपनी स्क्रिप्ट के कुछ हिस्से को यहां कुछ प्रश्नों के साथ जांच-पड़ताल करके पूरा किया, जिन पर पहले सवाल किया गया है।

फ़ोल्डर पता : C:\Users\Test\A\B

B फ़ोल्डर में 3 सबफ़ोल्डर M1, M2, M3 है जिसका अर्थ है कि "C:\Users\Test\A\B" पथ के अंतर्गत। सबसे पहले मैं इस पथ के सभी फ़ोल्डरों को Get-ChildItem के साथ लाया।

इसके बाद मैं M1 या M2 या M3 फोल्डर के इनसाइड फोल्डर का उपयोग करूंगा। उदाहरण के लिए मैं सबसे पहले M1 फोल्डर का सबफोल्डर लाऊंगा। फिर मैं M2 फोल्डर के लिए उपयोग करूंगा और आगे बढ़ूंगा। ये फोल्डर M1, M2, M3 डायनामिक रूप से बदलेंगे इसलिए इन फोल्डर का पथ बदल जाएगा।

मैं M1 forlder के नाम पर फ़ोल्डर पता पथ जोड़ना चाहता हूं। प्रक्रिया का अंत पथ होना चाहिए:

फ़ोल्डर पता : C:\Users\Test\A\M1 या C:\Users\Test\A\B\M2

$names = Get-Childitem -Path C:\Users\Test\A -Directory -Name
$testadres  = "C:\Users\Test\A" 

असल में मैं स्क्रिप्ट में पथ सबफ़ोल्डर नाम के अंत में गतिशील रूप से जोड़ने की कोशिश कर रहा हूं। प्रक्रिया का अंत नया पथ होल्ड नीचे होना चाहिए:

$newaddress = "C:\Users\Test\A\M1" या $newaddress = "C:\Users\Test\A\M2"

0
PALES 2 अप्रैल 2020, 18:26

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप प्रथम स्तर के उपनिर्देशिका पथ सूचीबद्ध करना चाहते हैं, तो आप निम्न कार्य कर सकते हैं:

Get-Childitem -Path C:\Users\Test\A -Directory | Select -Expand FullName

यदि आप एक पथ ($sourceDir) से दूसरे पथ के अंत तक ($targetDir) उपनिर्देशिका नाम में शामिल होना चाहते हैं, तो आप निम्न कार्य कर सकते हैं:

$sourceDir = 'C:\Users\Test\A\B'
$targetDir = 'C:\Users\Test\A'
Get-ChildItem -Path $sourceDir -Directory -Name | Foreach-Object {
    Join-Path -Path $targetDir -ChildPath $_
}

यदि किसी भी समय आप एक स्तर से अधिक गहराई से क्वेरी करना चाहते हैं, तो आप -Recurse स्विच को Get-ChildItem

0
AdminOfThings 2 अप्रैल 2020, 16:03