0

私は2つのフォルダを持っています

  • C:\フォルダ1
  • C:\フォルダ2

両方のフォルダーには、異なる番号のファイル名 (例: 01.txt、02.txt...10.txt) の *.txt ファイルが含まれます。

スクリプトは、両方のフォルダーに存在するファイルを比較します。次に、「Folder2」またはその逆に存在しない「Folder1」からのファイルのみを C:\TestFolder にコピーします。

たとえば、次の場合:

  • Folder1 には 10.txt という単一のファイルが含まれています
  • Folder2には複数のファイル02.txt、10.txtが含まれています

その場合、02.txt が C:\Testfolder にコピーされる唯一のファイルになります。

以下のスクリプトを変更して、次の機能を追加します。

  • Folder1 に存在するファイルの方が新しい場合、Folder2 の「すべて」のファイル: 何もしません。
  • Folder1 のファイルの方が新しい場合、Folder2 のファイルの「一部」: 新しいファイルを Folder3 にコピーします。

基本的に、Folder1 に存在するファイルが Folder2 に既に存在するかどうかを確認する必要があります。また、このファイルが同じかどうか、または新しいバージョンのファイルが Folder2 に存在するかどうかも確認してください。

Compare-Object $Folder1 $Folder2 -Property Name, Length , LastWriteTime | Where-Object {$_.SideIndicator -eq "<="} | ForEach-Object {
    Copy-Item "C:\Source\$($_.name)"  -Destination "C:\TestFolder" -Force -recurse -include "*.txt"
}
4

1 に答える 1