Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

任意のフォルダ内のファイルで〇日前以降や〇時間前以降のファイルのみ別フォルダにコピーする ただしtmpフォルダは除く

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!
スポンサーリンク
バッチ処理の自動化スキルは市場価値が高いです。今の自分の単価を調べてみませんか?
顧客常駐はもう嫌だ!社内SEへ転職するなら【社内SE転職ナビ】
Cursor・Claude Code・Codex AIスキルを学ぶなら
環境構築不要!AIエージェント開発を非エンジニアでも即実践【AI Agent Camp】

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*)を持つアイテムをコピー対象から省くことができ、複数の除外パターンも指定可能です。 
基本的な使い方
  • 特定の拡張子を除外する:
    powershell
    Copy-Item -Path "C:\Source\*" -Destination "C:\Destination" -Exclude "*.log"
    

    .logファイル以外をコピー)

  • 複数のパターンを除外する(カンマ区切り):
    powershell
    Copy-Item -Path "C:\Source\*" -Destination "C:\Destination" -Exclude "*.tmp", "*.bak"
    

    .tmpファイルと.bakファイル以外をコピー)

  • 特定のフォルダを除外する:
    powershell
    Copy-Item -Path "C:\Source\*" -Destination "C:\Destination" -Exclude "TempFolder"
    

    TempFolderという名前のフォルダを除外)

-Includeと-Excludeの併用
  • -Include(含めるもの)と-Exclude(除外するもの)を同時に使うこともできます。Includeで指定したものがExcludeでさらに除外されます。
    powershell
    Copy-Item -Path "C:\Source\*" -Destination "C:\Destination" -Include "*.txt", "*.csv" -Exclude "*.bak"
    

    .txt.csvファイルのみを対象とし、その中でも.bakファイルは除外)

重要なポイント
  • -Excludeは、Pathで指定したアイテム自体ではなく、コピー対象となるアイテム(ファイルやフォルダ)のパターンを指定します。
  • -Filterと混同しないように。FilterPathの指定と同時にアイテムを絞り込む(より高速)のに対し、ExcludePathで指定されたアイテム群の中からさらに除外します。 
タイトルとURLをコピーしました