
はじめて質問させていただきます。
質問内容は会社でファイル分け作業をbatファイルで、できないかという事です。
ファイル名(全て半角英数字)
AAAA23.doc
BBB834.doc
CCCA87.doc
AAA567.doc
最初の3文字だけファイル名を抽出し、抽出した3文字のフォルダを作成。
抽出したフォルダにコピーする。
ファイル名は長くなる事はあっても、抽出する文字数は一定です。
会社で使う為にフリープログラムなど使えない状態です。
別の質問にあった下記のバッチが近いのですが、最初の3文字抽出ができずに困っております。
:LOOP
if "%~1"=="" goto :EOF
md "%~n1"
move "%~1" "%~n1"
shift
goto :LOOP
解りずらい説明、最後まで読んでいただきありがとうございました。
No.1ベストアンサー
- 回答日時:
以下のような感じでいかがでしょうか。
「設定」の所にある、振り分け対象ファイルが入ったフォルダである「C:\振り分け対象フォルダ」の部分は、環境に合わせて書き換えて使ってください。
対象ファイルは、対象フォルダ内のファイルのみです。
サブフォルダ下のファイルは含みません。
「%」を含むファイル名やパスには対応していません。
安全の為に、テスト用にコピーしたファイルを対象にまず実行してください。
―――――――――――――――――――――――――――
@echo off
rem ■ 設定 ■
set "対象フォルダ=C:\振り分け対象フォルダ"
rem ■ カレントディレクトリの移動 ■
pushd "%対象フォルダ%"
rem ■ 振り分け処理の開始 ■
for /F "delims=" %%a in ('dir /b /a-d') do (
call :振り分け処理 "%%a"
)
rem ■ 全て終わったら完了メッセージを表示する ■
echo.
echo.
echo. 完了しました。
echo.
echo.
pause
rem ■ このバッチファイルを終了させる ■
exit /b
rem ■ 振り分け処理 ■
:振り分け処理
rem ■ 変数「ファイル名」に、今回のファイル名を代入する ■
set "ファイル名=%~1"
rem ■ 変数「フォルダ名」に、「今回のファイル名の頭から3文字」を代入する ■
set "フォルダ名=%ファイル名:~0,3%"
rem ■ 変数「フォルダ名」を使ってフォルダを作成する(まだ無い場合) ■
if not exist "%フォルダ名%" md "%フォルダ名%"
rem ■ 今回のファイルを移動させる ■
move "%ファイル名%" "%ファイル名:~0,3%\"
rem ■ 今回のファイル処理を終了する ■
exit /b 2
―――――――――――――――――――――――――――
こんなに短時間に詳しい説明付き、誠にありがとうございます。
凄くわかりやすく、テストも無事にできました。
こんなに一瞬で振り分けれる事に感動してます。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 Windows10の回復環境 2 2023/02/03 19:13
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Google Drive 【Googleドライブ】ドライブ上内でのフォルダ移行について 4 2022/11/30 12:50
- Visual Basic(VBA) batにて、異なるフォルダの同名ファイルを参照し、文字列を判別。擬似配列で変数へ格納 3 2022/04/10 03:37
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
バッチファイルで、iniファイル...
-
DOSのバッチ作成について‐FORの...
-
バッチコマンドでファイル名の...
-
コマンドプロンプトでファイル...
-
バッチファイルで同一フォルダ...
-
大量のフォルダからひとつのフ...
-
binファイルを解凍したいの...
-
コマンドプロンプトのエラーに...
-
win10の「フォト」で、「次へ」...
-
これってパソコンの最適化が完...
-
テキストファイルで提出とは?
-
バッチ処理でファイルの中身を...
-
stable diffusionのインストー...
-
VBScriptでコマンドプロンプト...
-
公文書のxmlファイルの開き方が...
-
ハードディスク上書き用大容量...
-
Windows10にデュアルブートでXP...
-
VBSでコマンドプロンプトのカレ...
-
一太郎がイントラで開けません...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
バッチファイルで、iniファイル...
-
コマンドプロンプトでファイル...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトで変数が数...
-
ExcelVBAのDirでスペース含むフ...
-
[DOS] コピー先に同じファイル...
-
ファイル名の頭5桁と同名のフォ...
-
サブフォルダからファイルをコ...
-
フォルダ内の更新日時が一番新...
-
.batでファイル名から抽出して...
-
access,vbaでフォルダ内のファ...
-
バッチファイルで同一フォルダ...
-
バッチコマンドでファイル名の...
-
Windowsコマンドプロンプトで、...
-
スタートアップのファイルをバ...
-
ファイル名に ” を使うと エク...
-
ファイル名を該当フォルダ内か...
-
aタグのhrefにネットワークパス...
-
【DOSバッチ開発】末尾のタブの...
おすすめ情報