3

フォルダーとファイルを再帰的にコピーするプログラムがあります。例:

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

ファイルがコピーされないことがあります。「再帰の中に入る」方法、またはそれを行うためのより良い方法はありますか?それで、ワードの後ではなく、プロセス中に何らかのエラーチェックを有効にすることができます。おそらく、テストパスを実行して、再コピーを求めるプロンプトを表示することさえありますか?

4

1 に答える 1

4

あなたはできる。たとえば、次のコード スニペットは、実際に各ファイルをコピーして、考えられるエラーをチェックします。いくつかの前提条件を確認するために、カスタム コードを最初に配置することもできます。

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."
    }
}
于 2010-09-28T04:02:17.183 に答える