0

要件は、ファイルをソースから宛先フォルダーにコピーすることです。

この句は、スクリプトの最初の実行時にすべてをコピーする必要がありますが、その後の実行では、まだコピーされておらず、新しいファイルのみをコピーする必要があります。

問題は、宛先フォルダーから、ファイルを処理し、実行後にそれらを削除するスクリプトがあることです。したがって、ソースから宛先にコピーされた重複ファイルは必要ありません。

source-> abc.txt,def.xt

1回目の実行後

dest->abc.txt,def.txt

後続の実行

source->abc.txt,def.xt, ghi.txt

dest->abc.txt,def.xt, ghi.txt

これで、別のスクリプトがdestフォルダーで機能し、削除されたabc.txt場合ghi.txt、ロジックは次のようになります。

source->abc.txt,def.xt, ghi.txt,jkl.txt

これで、スクリプトを実行すると、新しいファイルのみがコピーされます。

dest->ghi.txt, jkl.txt

スクリプトを初めて実行した後の出力をtxtファイルに記録し、ソースフォルダーから宛先に何かをコピーする前に、テキストファイルが存在するかどうかをそのログファイルにチェックインする条件を設定できるかどうかを考えていました。

希望は説明することができました。

どうも

4

1 に答える 1

0

次のように、履歴にないファイルをコピーできます。

$sourceFolder = "..."
$destFolder   = "..."
$historyFile  = "history.txt"

$recurse = $false

$history = Get-Content $historyFile

Get-ChildItem $sourceFolder -Recurse:$recurse | ? {
  -not $_.PSIsContainer -and $history -notcontains $_.FullName
} | % {
  Copy-Item $_.FullName $destFolder
  $_.FullName >> $historyFile
}

この行$_.FullName >> $historyFileは、コピーされたファイルを履歴ファイルに追加します。

于 2013-03-21T15:00:11.277 に答える