2010-09-28 34 views
2

我有一个递归复制文件夹和文件的程序。 示例:递归文件复制期间powershell错误检查

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

有时文件不会复制。有没有办法“步入递归”或更好的方式来做到这一点,所以我可以在这个过程中启用某种错误检查,而不是在病房之后。可能甚至做一个测试路径并提示重新复制?

+0

stej - 没有意识到这与回答问题有关 - 回去并更新它们 - thx – alphadev 2010-09-29 02:54:33

回答

2

你可以。例如,以下代码片段将实际复制并检查每个文件是否存在可能的错误。您也可以在开始时加入自定义代码以检查一些先决条件:

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." 
    } 
}