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

おはようございます。すぎやまです。

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

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

一括でファイル移動

  • 手動の場合、ファイルの種類別に並び替え、必要なファイルをすべて選択
  • バッチファイルを使用する場合、「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をコピーしました