この記事では、一括でファイルを移動する方法を紹介します。
まず、結論を記載します。
一括でファイル移動
- 手動の場合、ファイルの種類別に並び替え、必要なファイルをすべて選択
- バッチファイルを使用する場合、「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 "ファイルの移動が完了しました。"
その他の作業を効率化したい方へ
今回はファイル移動の効率化について紹介しましたが、
これ以外にも簡単に効率化出来てしまう作業がたくさんあります。
以上、最後まで読んでいただきありがとうございました。
メーカー勤務のサラリーマン。
生成AIを駆使してプログラムを作り、
日々の業務の効率化を図る。