【図解あり】拡張子ごとにファイルをフォルダにまとめる【ps1ファイル】

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

この記事では、フォルダにあるファイルを簡単に整理する方法をお伝えします!

こんな方におすすめ

  • ps1ファイルでフォルダの整理をしたい方
  • ChatGPTを使ったけど、機能しなかった方

仕事や研究をしていると、関連するファイルを纏めて保存しておくことはよくあります。

しかし、整理されていないと必要なファイルを探すのに非常に手間取ってしまいます。
そこで今回は、フォルダにあるファイルのリストを作成するps1ファイルを紹介します!

この記事ではコードも紹介しますので、それをコピーして張り付けるだけでps1ファイルが作れます。
ps1ファイルを作ったことのない方でも絶対にできますよ!

それではどうぞ!

機能紹介

このファイルは、フォルダ内にある、指定した拡張子のファイルをフォルダに纏めるものです。

例えば、フォルダのなかにこんなファイルがあったとします。

この時、画像ファイルを纏めたいとき、このファイルを使えば

このように、指定した拡張子の名前でフォルダが出来て

フォルダを開くと、画像ファイルが移動しています!

さっそく作り方を説明します!

ps1ファイルの作り方

ps1ファイルの作り方は、この記事を参照ください
図解付きでps1ファイルの作り方と使い方を紹介しています!

コード紹介

今回使用したファイルの中身はこんな感じです!

# PowerShellスクリプト: 指定した形式のファイルを時間順にリネームして移動

# カレントディレクトリを取得
$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 "ファイルの移動が完了しました。"

この上のコードをコピーして、テキストに張り付けてps1ファイルにしてください。
それだけでさっきのファイルが完成します!

使い方

先ほどの例を使って説明します。

step1:ファイルを起動する

完成したファイルを、対象のファイルのあるフォルダに保存します。

作成したファイルの上で右クリック(①)、
その後「PowerShellで実行」をクリック(②)します。

すると、こんな画面が出てきます。

step2:対象のファイルの拡張子を指定する

次に、リストアップしたいファイルの拡張子(xlsxとか、jpegとか、pngとか、ファイルの末尾にあるやつです)を記入します。
今回の例では「png」と打ち込んでEnterを押します。

そうしたら作業完了です!

新たに作成されたフォルダを開いてみると

このようにフォルダ内のファイルがリストアップされています!

バッチファイルを使用する場合

今回はps1ファイルを使用しましたが、バッチファイルでも同様の操作ができます。
バッチファイルのほうが都合がよい方は下記をご覧ください。

バッチファイルでファイルを整理する

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

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