2013-02-05 23 views
6

एक फ़ोल्डर है जिसमें बहुत सी फाइलें हैं। केवल कुछ फ़ाइलों को एक अलग फ़ोल्डर में कॉपी करने की आवश्यकता है। ऐसी एक सूची है जिसमें कॉपी की जाने वाली फ़ाइलों को शामिल किया गया है।फ़ाइलों की एक सूची को निर्देशिका में कॉपी करें

मैं कॉपी-आइटम का उपयोग करने की कोशिश की है, लेकिन क्योंकि लक्ष्य सबफ़ोल्डर मौजूद नहीं है एक अपवाद फेंक दिया जाता है

"पथ का एक हिस्सा नहीं पा सके" वहाँ एक आसान तरीका यह तय करने के लिए है?

$targetFolderName = "C:\temp\source" 
$sourceFolderName = "C:\temp\target" 

$imagesList = (
"C:\temp\source/en/headers/test1.png", 
"C:\temp\source/fr/headers/test2png" 
) 


foreach ($itemToCopy in $imagesList) 
{ 
    $targetPathAndFile = $itemToCopy.Replace($sourceFolderName , $targetFolderName) 
    Copy-Item -Path $itemToCopy -Destination $targetPathAndFile 
} 

उत्तर

10

अपने foreach लूप के रूप में इस की कोशिश करो। यह TargetFolder और फ़ाइल कॉपी करने से पहले आवश्यक सबफ़ोल्डर पैदा करता है।

foreach ($itemToCopy in $imagesList) 
{ 
    $targetPathAndFile = $itemToCopy.Replace($sourceFolderName , $targetFolderName) 
    $targetfolder = Split-Path $targetPathAndFile -Parent 

    #If destination folder doesn't exist 
    if (!(Test-Path $targetfolder -PathType Container)) { 
     #Create destination folder 
     New-Item -Path $targetfolder -ItemType Directory -Force 
    } 

    Copy-Item -Path $itemToCopy -Destination $targetPathAndFile 
} 
+0

अच्छा। वहाँ एक आसान तरीका यह खत्म हो गया फ्लिप और ठीक विपरीत करने के लिए है? यानी,'$ imagesList' में ** नहीं ** की सभी फ़ाइलों की प्रतिलिपि बनाएँ? – user3026965

संबंधित मुद्दे

 संबंधित मुद्दे