2012-11-13 21 views
5

Sono nuovo in PowerShell e sto incontrando un problema durante il tentativo di escludere determinate directory durante la copia ricorsiva. Qualsiasi aiuto è apprezzato! Grazie in anticipo.powershell: impossibile escludere le cartelle durante la copia ricorsiva

$Date = Get-Date 
$Date = $Date.adddays(-1) 

$destPath = "\\destination\test" 
$srcPath = "H:\program files\symphony\Save" 
$srcPathRemits = “H:\program files\symphony\files" 
$destDrive = "X:" 
$User = "user" 
$Password = "password" 

$exclude = @('H:\program files\symphony\files\Temp\*','H:\program files\symphony\files\Other\*','H:\program files\symphony\files\etc\*','H:\program files\symphony\files\ParsedXML\*') 

$net = new-object -ComObject WScript.Network 
$net.MapNetworkDrive($destDrive, $destPath, $false, $User, $Password) 

gci -recurse -path $srcPathRemits -Exclude $exclude | ? {!($_.psiscontainer) -AND $_.lastwritetime -gt $Date} | % { write-host $_.fullname; Copy-Item -path $_.fullname -destination $destDrive} 
$net.RemoveNetworkDrive($destDrive,"true","true") 
+1

Quando dici che hai riscontrato un problema, potresti essere più specifico? Hai ricevuto un messaggio di errore? Cos'era? – David

+0

Per favore segna la domanda risposta quando ne hai la possibilità. Grazie. – David

risposta

9

non hai detto quale fosse il problema, ma darò per scontato che le directory ($exclude) non erano adeguatamente esclusi. Prova questo, invece, per la riga gci:

Get-Item -Path H:\program files\symphony\files\* -Exclude Temp, Other, etc, ParsedXML | Get-ChildItem -recurse | ? {!($_.psiscontainer) -AND $_.lastwritetime -gt $Date} | % { write-host $_.fullname; Copy-Item -path $_.fullname -destination $destDrive} 
+0

Ciao David, sei corretto nel tuo assunto, il ($ escludere) non funzionava. La tua soluzione funziona perfettamente! Grazie per tutto il tuo aiuto! – Gbgk

+2

@Gbgk Ottimo! Potresti per favore contrassegnare la mia soluzione come risposta? Grazie. – David

Problemi correlati