【初心者向け】PowerShellでファイルやフォルダを移動する方法|Move-Item徹底ガイド

Windows

Windowsでファイルやフォルダを移動する場合、マウスでドラッグ&ドロップするのが一般的ですが、PowerShellを使えば作業の自動化や大量処理が驚くほど効率化できるんです。

その中心になるのが、Move-Itemコマンドです。

今回は、Move-Itemの基本的な使い方から、よくあるエラー、実践的な応用方法までをわかりやすく紹介します。


スポンサーリンク

Move-Itemとは?

Move-Itemは、ファイルやフォルダを別の場所に移動するためのPowerShellコマンドレットです。

コピーするのではなく、「元の場所から削除して新しい場所へ移す」操作を行います。

つまり、元のファイルはなくなって、移動先に現れるということですね。


基本構文と使用例

まずは基本的な使い方から見てみましょう。

基本構文

Move-Item -Path "移動元パス" -Destination "移動先パス"

例:ファイルを移動する

Move-Item -Path "C:\Temp\report.txt" -Destination "C:\Backup\report.txt"

ポイント-DestinationはフォルダでもファイルパスでもOKです。

とてもシンプルな構文で使えますね。


フォルダの移動にも対応

フォルダも同じように移動できます。

Move-Item -Path "C:\Temp\Project" -Destination "D:\Archive"

フォルダごとまとめて移動できるので、プロジェクトの整理などに便利です。


ワイルドカードでまとめて移動

特定の拡張子のファイルをまとめて移動することも可能です。

Move-Item -Path "C:\Temp\*.log" -Destination "C:\Logs"

この機能を使えば、大量のファイルを一度に整理できるので作業効率がぐっと上がります。


フォルダ構造を保持した移動(例:再帰処理)

Move-Item自体には再帰移動オプションがないため、フォルダ構造を保持して移動したい場合Get-ChildItemとの組み合わせが便利です。

Get-ChildItem -Path "C:\Temp" -Recurse -File -Filter "*.txt" | ForEach-Object {
    $dest = $_.FullName -replace 'C:\\Temp', 'D:\\Backup'
    Move-Item $_.FullName -Destination $dest -Force
}

少し複雑に見えますが、慣れてくると強力な処理ができるようになります。


よくあるエラーと対処法

実際に使っていると、こんなエラーに遭遇することがあります。

ファイルが存在しない

エラー例:

Move-Item : Cannot find path 'C:\Temp\file.txt' because it does not exist.

対処法:パスをダブルクォートで囲む、スペルミスや存在チェックを行いましょう。

移動先ファイルがすでに存在

エラー例:

Move-Item : Cannot create a file when that file already exists.

対処法-Forceを使うと上書きできます。

Move-Item -Path "file.txt" -Destination "folder\file.txt" -Force

アクセス拒否エラー(アクセス権限)

対処法:PowerShellを管理者として実行する、またはアクセス権を確認してください。

エラーが出ても慌てずに、一つずつ確認していけば大丈夫です。


スクリプト例:ログファイルの整理

実際の業務でよく使うパターンを紹介します。

$source = "C:\Logs"
$archive = "C:\Logs\Archive"

Get-ChildItem -Path $source -Filter "*.log" | ForEach-Object {
    Move-Item $_.FullName -Destination $archive -Force
}

このスクリプトを定期実行すれば、ログファイルの整理が自動化できますね。


まとめ:Move-Itemでファイル操作を自動化しよう!

Move-Itemは、PowerShellを使ってファイルやフォルダを手早く移動・整理・バックアップしたいときに欠かせないコマンドです。

スクリプトに組み込むことで、定期的なメンテナンスやログ整理を自動化することも可能になります。

今日のまとめ

  • Move-Item -Path ~ -Destination ~で移動できる
  • ファイル・フォルダどちらにも対応
  • -Forceで上書きが可能
  • Get-ChildItemと組み合わせて柔軟な処理が可能
  • エラー発生時はパス・権限・存在確認を!

コメント

タイトルとURLをコピーしました