Junkerposts
複数のファイルが有り、先頭が一定の種類でまとまっている。例えば、momo-123.jpg momo-assd.jpg dda-qqqwqw.jpg dda-ttttrerer.jpgなど。これらを、まずフォルダ分けして移動する。momoフォルダ ddaフォルダなど。 次に圧縮して、1つずつの圧縮ファイルにしたい momo.zip dda.zip のように。このようなバッチを作成できないか 
 
 
 
できます!Windows環境で使える「バッチファイル(.bat)」を作成すれば、以下のような処理が可能です: 
 
--- 
 
### ✅ やりたいこと(まとめ) 
1. 複数のファイル(例:`momo-123.jpg`, `dda-abc.jpg`)がある。 
2. 接頭辞(例:`momo`, `dda`)ごとにフォルダを作り、ファイルを移動。 
3. 各フォルダを個別に ZIP 圧縮(例:`momo.zip`, `dda.zip`)。 
 
--- 
 
### 🛠 バッチファイルのコード(`sort_and_zip.bat`) 
```bat 
@echo off 
setlocal enabledelayedexpansion 
 
REM 作業ディレクトリ(スクリプトのある場所に設定) 
cd /d "%~dp0" 
 
REM 拡張子を指定(jpg以外も対応可能) 
set EXT=jpg 
 
REM ファイルをループ処理 
for %%f in (*.%EXT%) do ( 
REM 接頭辞をファイル名の先頭からハイフンまで抽出(例:momo) 
for /f "tokens=1 delims=-" %%a in ("%%~nxf") do ( 
set PREFIX=%%a 
 
REM フォルダがなければ作成 
if not exist "!PREFIX!" ( 
mkdir "!PREFIX!" 

 
REM 該当フォルダにファイル移動 
move "%%f" "!PREFIX!\" 


 
REM フォルダをZIP圧縮(PowerShell使用) 
for /d %%d in (*) do ( 
REM 拡張子を除いたZIPファイル名を作成 
powershell -command "Compress-Archive -Path '%%d\*' -DestinationPath '%%d.zip'" 

 
echo 完了しました! 
pause 
``` 
 
--- 
 
### 🔧 使い方 
1. 上記コードをメモ帳などにコピペ。 
2. `sort_and_zip.bat` として保存。 
3. 対象の画像ファイル(例:`momo-1.jpg`など)があるフォルダにこの `.bat` を配置。 
4. ダブルクリックで実行。 
 
--- 
 
### 📝 注意点 
- Windows 標準の `Compress-Archive` は PowerShell で使えるので、特別なソフト不要。 
- 拡張子が `.jpg` 以外(例:`.png`, `.txt`など)の場合は、`set EXT=jpg` を変更。 
 
--- 
 
もしファイル名のルールがもう少し複雑だったり、他のOS(Mac / Linux)用スクリプトも必要なら、その辺りも対応できるよ!