2010-09-28 8 views
2

J'ai un programme qui copie les dossiers et les fichiers récursivement. exemple:vérification d'erreur powershell pendant la copie de fichier avec récursivité

Copy-Item -path "$folderA" -destination "$folderB" -recurse 

Parfois, les fichiers ne copie pas. Y a-t-il un moyen de "faire un pas dans la récursivité" ou une meilleure façon de le faire, donc je peux activer une sorte de vérification d'erreur pendant le processus plutôt qu'après. Peut-être même faire un Test-Path et demander une recopie?

+0

STEJ - ne se rendent pas compte que c'était quelque chose à voir avec des questions réponses - Je suis allé en arrière et les Actualisé - thx – alphadev

Répondre

2

Vous pouvez. Par exemple, l'extrait de code suivant copiera et vérifiera chaque fichier à la recherche d'éventuelles erreurs. Vous pouvez également mettre votre code personnalisé au début pour vérifier quelques conditions préalables:

get-childItem $source -filter *.* | foreach-object { 
    # here you can put your pre-copy tests... 

    copy-item $_.FullName -destination $target -errorAction SilentlyContinue -errorVariable errors 
    foreach($error in $errors) 
    { 
     if ($error.Exception -ne $null) 
     { 
      write-host -foregroundColor Red "Exception: $($error.Exception)" 
     } 
     write-host -foregroundColor Red "Error: An error occured during copy operation." 
    } 
}