2012-07-19 25 views
8

Ciao, sto lottando potentemente con il seguente - supponiamo di avere la seguente struttura di directory C: \ Temp \ Test1 e C: \ Temp \ Test2Copia-elemento/Rimuovi-elemento contenuto figlio solo senza cartella radice?

Quello che mi piacerebbe fare è copiare ricorsivamente i contenuti del bambino di C: \ Temp \ Test1 in C: \ Temp \ Test2 senza copiare la cartella C attuale: \ Temp \ Test1 ..right ora se uso il comando

Copy-Item C:\Temp\Test1 C:\Temp\Test2 -Recurse 

si tradurrà in C: \ Temp \ Test2 \ Test1 e nessuna combinazione di parametri sembra alleviare il problema

Analogamente, quando desidero rimuovere tutto il contenuto secondario in C: \ Temp \ Test2 desidero solo eliminare il contenuto figlio e non la cartella effettiva ad es.

Remove-Item C:\Temp\Test2\ -Recurse 

Rimuove la cartella \ Test2. Ho provato così tante variazioni di parametri - come posso realizzare ciò che sto cercando di fare?

risposta

5

Dai un'occhiata al comando get-childitem. È possibile utilizzare questo in cantiere per copiare o rimuovere tutti gli elementi sotto le cartelle principali:

# recursively copy everything under C:\Temp\Test1 to C:\Temp\Test2 
get-childitem "C:\Temp\Test1" | % { 
    copy-item $_.FullName -destination "C:\Temp\Test2\$_" -recurse 
} 

# recursively remove everything under C:\Temp\Test1 
get-childitem "C:\Temp\Test1" -recurse | % { 
    remove-item $_.FullName -recurse 
} 
+0

Grazie che ha fatto il trucco. – blue18hutthutt

+1

Si noti che non è necessario eseguire il wrapping delle chiamate del cmdlet in un foreach ('... |% {cmdlet $ _. FullName ...}'); entrambi ['Copy-Item'] (http://go.microsoft.com/fwlink/?LinkID=113292) e [' Remove-Item'] (http://go.microsoft.com/fwlink/?LinkID= 113373) accetterà automaticamente l'input dalla pipeline. Per esempio. il secondo esempio può essere semplificato in 'Get-ChildItem" $ env: temp \ Test1 "| Remove-Item -Recurse'. –

8
Copy-Item C:\Temp\Test1\* C:\Temp\Test2 
    Remove-Item "C:\Temp\Test2\*" -recurse 

Opere troppo :)

+0

copia-elemento conserva (anche con contenitore o contenitore) una struttura di cartelle in Test1 .... –

Problemi correlati