一括でファイルを移動させたい

この記事では、一括でファイルを移動する方法を紹介します。

まず、結論を記載します。

一括でファイル移動

  • 手動の場合、ファイルの種類別に並び替え、必要なファイルをすべて選択
  • バッチファイルを使用する場合、「move」コマンドを使用
  • ps1ファイルを使用する場合、「Move-Item」コマンドを使用

下記、詳細を説明します。

手動でファイル一括移動

多少手間がかかり、ミスが起きる可能性もありますが、
一番簡単な方法が手動でファイルを指定し移動させることです。

次の方法を使えば、ファイルを一括で選択できます。
①左クリックしながらマウスを動かす
②ファイルを左クリック等で選択、その後「Shift」キーを押しながら「↑」or「↓」キーを押す

ファイル移動を手動で行うときの手順

また、ファイルは ファイル名/更新日時/ファイルの種類/ファイルサイズ で並び替え出来ます。

ファイルの並び替え

これらを組み合わせて、欲しい部分だけ選択すれば、手動でファイルを移動できます。

バッチファイルを使ってファイル移動

最初にファイルを作る手間がかかりますが、
バッチファイルでファイル移動をすると簡単&確実にファイル移動が出来ます。

下のコードは、特定の形式のファイルのみをフォルダに纏めるものです。

@echo off
setlocal enabledelayedexpansion

REM フォルダ内の指定した形式のファイルを取得するバッチファイル

REM フォルダパスを設定(カレントディレクトリ)
set "folder=%cd%"

REM 形式を入力
set /p "fileFormat=ファイルの形式を入力後、エンターキーを入力してください(例: xlsx,docx,txt,csv ...): "

REM まとめる先のフォルダ
set "destination_folder=%cd%/%fileFormat%"

REM フォルダが存在しなければ作成する
if not exist "%destination_folder%" mkdir "%destination_folder%"

REM 指定した拡張子のファイルを移動
for %%i in ("%folder%\*%fileFormat%") do (
    move "%%i" "%destination_folder%"
)

echo "ファイルの移動が完了しました。"
pause

使用方法はこちらの記事をご覧ください。

一度作ってしまえば使いまわせるので、非常におすすめです。

ps1ファイルを使ってファイル移動

バッチファイル同様、ps1ファイルを使用してもファイル移動が出来ます。

# カレントディレクトリを取得
$folder = Get-Location

# ファイル形式をユーザーに入力させる
$fileFormat = Read-Host "ファイルの形式を入力後、エンターキーを入力してください(例: xlsx, docx, txt, csv ...)"

# 入力が空白の場合、終了
if ([string]::IsNullOrWhiteSpace($fileFormat)) {
    Write-Host "ファイル形式が入力されませんでした。スクリプトを終了します。"
    exit
}

# まとめる先のフォルダを設定
$destinationFolder = Join-Path -Path $folder -ChildPath $fileFormat

# フォルダが存在しなければ作成する
if (-not (Test-Path $destinationFolder)) {
    New-Item -ItemType Directory -Path $destinationFolder
}

# 指定した拡張子のファイルを取得して移動
Get-ChildItem -Path $folder -Filter "*.$fileFormat" | ForEach-Object {
    Move-Item -Path $_.FullName -Destination $destinationFolder
}

Write-Host "ファイルの移動が完了しました。"

その他の作業を効率化したい方へ

今回はファイル移動の効率化について紹介しましたが、
これ以外にも簡単に効率化出来てしまう作業がたくさんあります。

こちらの記事に纏めておりますので、是非ご一読ください!

以上、最後まで読んでいただきありがとうございました。

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