
windows10ユーザです。
フォルダ内にある複数のファイル(jpg)を、ファイル名の頭5桁ごとに分類したいため、そのファイル名と同名のフォルダを元のフォルダ内に新たに作成し、そこに保存したいと思っていますが、何か一括でファイル名と同名のフォルダを作成する方法はないでしょうか?
例)
ファイル名:
・12345_a.jpg
・12345_b02.jpg
・12345-a.jpg
・12346-011_hh.jpg
・12346-a.jpg
分類後:
-フォルダ「12345」
・12345_a.jpg
・12345_b02.jpg
・12345-a.jpg
-フォルダ「12346」
・12346-011_hh.jpg
・12346-a.jpg
*最初の5桁の番号で分類したいです。
*_か-の後の文字数は変動あります
検索したところフリーソフトや、バッチ、マクロの例などあったのですが、
一つずつのファイル名で分類してしまうもの等、ちょうど条件に合うものがみつけられませんでした。
何か良い方法ありましたらお願いいたします。
No.2ベストアンサー
- 回答日時:
バッチファイルの例だと、以下のような感じで出来るかと思います。
以下の線内の文章をメモ帳等に貼り付け、「設定」の下の2行だけご自身の環境や用途に合わせて書き換え、保存時に「文字コード」を「ANSI」にして、「~.bat」というようなファイル名(バッチファイル)で保存し、それを実行してみてください。
まずは、コピーしたファイルを対象にテストしてみてください。
――――――――――――――――――
@echo off
rem ■ 設定
set "対象フォルダ=C:\xxx\xxx"
set "対象ファイル=*.jpg"
rem ■ カレントディレクトリの変更
pushd "%対象フォルダ%"
rem ■ 遅延環境変数を有効にする
SETLOCAL enabledelayedexpansion
rem ■ ループ処理開始
for %%a in ("%対象ファイル%") do (
rem ■ 「ファイル名」の代入
set "ファイル名=%%~na"
rem ■ 「頭の文字列」の代入(ファイル名の頭から5文字目まで)
set "頭の文字列=!ファイル名:~0,5!"
rem ■ 頭の文字列のフォルダを作成
md "!頭の文字列!" >nul 2>&1
rem ■ 頭の文字列が付くファイルを、頭の文字列のフォルダへ移動
move "!頭の文字列!*" "!頭の文字列!\" >nul 2>&1
rem ■ ループ処理終了
)
rem ■ 遅延環境変数を無効にする
ENDLOCAL
rem ■ 完了
echo.
echo. 完了しました。
echo.
pause
――――――――――――――――――
※「>nul 2>&1」はエラーを非表示にする為の記述です。
うまくいかなかったら、その旨を補足して頂ければ修正します。
ありがとうございます!無事にイメージ通りのフォルダ分けができました!!
手動で度々行っている作業でしたので、今後も活用させていただきます。
丁寧に教えていただきありがとうございました。
No.1
- 回答日時:
そういうのはUnix、Linuxのコマンド類が得意ですが、
bashだとこんな感じです。
for dir in `ls | cut -c 1-5 | sort | uniq`; do mkdir $dir; done
cygwinでもWSLでもいいけれど
Windows10にUnixライク、Linuxライクな環境を導入すれば、
上記コマンドでできると思います。
こんな短いコードで実現するのですね...!すごいです。
申し訳ありませんが、環境構築がまだ出来ておらず、
こちらのコードをどう使ってよいのか私の技量だとわからず、実行できませんでした。
今後環境できたら試してみたいと思います。ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ファイル名と同名のフォルダを自動作成して移動させる方法はありますか?
Access(アクセス)
-
同名フォルダを作成し、そのフォルダに移動するバッチ
その他(プログラミング・Web制作)
-
.batでファイル名から抽出してフォルダを作成しコピーする
その他(プログラミング・Web制作)
-
-
4
バッチファイル 現在のフォルダ名をファイル名に置き換える
その他(開発・運用・管理)
-
5
Windowsで複数のファイルを同じ名前のフォルダーに振分ける方法を教えてください。
Microsoft ASP
-
6
バッチを用いたフォルダの自動移動
Visual Basic(VBA)
-
7
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
8
ひとつのファイルを一括で複数のフォルダにコピーする方法はありませんか
Windows Vista・XP
-
9
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
10
bat ファイルでフォルダ作成&移動
Windows Vista・XP
-
11
ファイル名を該当フォルダ内から検索して移動
その他(プログラミング・Web制作)
-
12
ファイルと同名のフォルダを作成
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトでファイル...
-
ExcelVBAのDirでスペース含むフ...
-
バッチファイルで、iniファイル...
-
バッチファイルで同一フォルダ...
-
コマンドプロンプトで変数が数...
-
[DOS] コピー先に同じファイル...
-
バッチプログラム 曖昧検索に...
-
【DOSバッチ開発】末尾のタブの...
-
ftp処理でmove(移動)を行いたい
-
ファイル名の頭5桁と同名のフォ...
-
スタートアップのファイルをバ...
-
ファイル名に ” を使うと エク...
-
フォルダ内の更新日時が一番新...
-
コマンドプロンプトでのCSV...
-
Windowsコマンドプロンプトで、...
-
ファイル名を変更して移動させ...
-
バッチにて複数のcsvファイルを...
-
サブフォルダからファイルをコ...
-
.batでファイル名から抽出して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
[DOS] コピー先に同じファイル...
-
コマンドプロンプトでファイル...
-
バッチファイルで、iniファイル...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトで変数が数...
-
ExcelVBAのDirでスペース含むフ...
-
ファイル名の頭5桁と同名のフォ...
-
フォルダ内の更新日時が一番新...
-
サブフォルダからファイルをコ...
-
バッチコマンドでファイル名の...
-
access,vbaでフォルダ内のファ...
-
ファイル名を一括してリネーム...
-
スタートアップのファイルをバ...
-
VBA GetAttrについて教えてくだ...
-
aタグのhrefにネットワークパス...
-
【DOSバッチ開発】末尾のタブの...
-
.batでファイル名から抽出して...
-
word VBA ファイル名 保存
-
Windowsコマンドプロンプトで、...
おすすめ情報