120日前以降
Get-ChildItem "C:\Users\hoge\work" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-120) } | Where-Object { Copy-Item $_.FullName "C:\Users\hoge\work\tmp" -Exclude "tmp"}
3時間前以降
Get-ChildItem "C:\Users\hoge\work" | Where-Object { $_.LastWriteTime -gt (Get-Date).Addhours(-3) } | Where-Object { Copy-Item $_.FullName "C:\Users\hoge\work\tmp" -Exclude "tmp"}
【AIによる回答】
Copy-Itemコマンドでファイルやフォルダを除外するには、-Excludeパラメータを使います。ワイルドカード(*や?)と組み合わせて、特定の拡張子(例:*.tmp)や名前(例:temp*)を持つアイテムをコピー対象から省くことができ、複数の除外パターンも指定可能です。基本的な使い方
- 特定の拡張子を除外する:
powershellCopy-Item -Path "C:\Source\*" -Destination "C:\Destination" -Exclude "*.log"(
.logファイル以外をコピー)- 複数のパターンを除外する(カンマ区切り):
powershellCopy-Item -Path "C:\Source\*" -Destination "C:\Destination" -Exclude "*.tmp", "*.bak"(
.tmpファイルと.bakファイル以外をコピー)- 特定のフォルダを除外する:
powershellCopy-Item -Path "C:\Source\*" -Destination "C:\Destination" -Exclude "TempFolder"(
TempFolderという名前のフォルダを除外)-Includeと-Excludeの併用
- -Include(含めるもの)と
-Exclude(除外するもの)を同時に使うこともできます。Includeで指定したものがExcludeでさらに除外されます。powershellCopy-Item -Path "C:\Source\*" -Destination "C:\Destination" -Include "*.txt", "*.csv" -Exclude "*.bak"(
.txtと.csvファイルのみを対象とし、その中でも.bakファイルは除外)重要なポイント
