我有一个递归复制文件夹和文件的程序。例子:
Copy-Item -path "$folderA" -destination "$folderB" -recurse
有时文件不会复制。有没有办法“进入递归”或更好的方法来做到这一点,所以我可以在过程中而不是之后启用某种错误检查。甚至可能做一个测试路径并提示重新复制?
我有一个递归复制文件夹和文件的程序。例子:
Copy-Item -path "$folderA" -destination "$folderB" -recurse
有时文件不会复制。有没有办法“进入递归”或更好的方法来做到这一点,所以我可以在过程中而不是之后启用某种错误检查。甚至可能做一个测试路径并提示重新复制?
你可以。例如,下面的代码片段实际上将复制并检查每个文件是否存在可能的错误。您还可以将自定义代码放在开头以检查一些先决条件:
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."
}
}