• 締切済み

フォルダ名をファイル名の頭に追加するバッチ

社内の規定でパソコンにフリーソフトをインストールができません。 フォルダ内の複数あるファイル名の頭にフォルダ名を付け足すバッチファイルを作る事は可能でしょうか? 例 フォルダ名 ABC ファイル名 123.jpg 変更後 ABC123.jpg フォルダをバッチファイルにドラッグ&ドロップでファイル名を変更出来るようなものが有ればとても助かります。 わかる方がいましたら教えて頂きたいです。 宜しくお願いします。 使用するパソコンのOSはWindows7です。

みんなの回答

  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.4

フォルダをドラッグ&ドロップした場合に対応しました。 @echo off :loop if "%~1" == "" goto end set A=%~a1 if %A:~0,1%==d goto folder set A=%~p1 set B=%~nx1 set A=%A:~0,-1% for %%C in (%A%) do ( ren %1 %%~nC%B% ) :next shift goto loop :folder for /R %1 %%D in (*.*) do call %0 %%D goto next :end exit /B 注意して欲しいのは「直下のフォルダ名がファイル名の頭に付く」という事です。 例えば C:\test\a.jpg C:\test\b.jpg C:\test\c.jpg C:\test\d.jpg C:\test\folder\a.jpg C:\test\folder\b.jpg C:\test\folder\c.jpg C:\test\folder\d.jpg C:\test\folder\temp\a.jpg C:\test\folder\temp\b.jpg C:\test\folder\temp\c.jpg C:\test\folder\temp\d.jpg となっていた場合、結果は C:\test\testa.jpg C:\test\testb.jpg C:\test\testc.jpg C:\test\testd.jpg C:\test\folder\foldera.jpg C:\test\folder\folderb.jpg C:\test\folder\folderc.jpg C:\test\folder\folderd.jpg C:\test\folder\temp\tempa.jpg C:\test\folder\temp\tempb.jpg C:\test\folder\temp\tempc.jpg C:\test\folder\temp\tempd.jpg となります。 このように、1~4番目は「test」が、5~8番目は「folder」が、9~12番目は「temp」が付加されます。「全部、testが付く」ではありませんので、ご注意下さい。

echo0327
質問者

お礼

わかりました。 やってみます。 ありがとうございました!

  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.3

>試してみましたがフォルダ内のファイル名は変わっていませんでした。 「フォルダ」をドラッグ&ドロップしても、何も起きません(エラーになります) このバッチは「ファイル(複数選択可)」をドラッグ&ドロップするように作ってあります。

  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.2

以下の内容をバッチファイルにして、デスクトップ等に置いて、そのバッチファイルの上にファイルをドラッグ&ドロップして下さい。 @echo off :loop if "%~1" == "" goto end set A=%~p1 set B=%~nx1 set A=%A:~0,-1% for %%C in (%A%) do ( ren %1 %%~nC%B% ) shift goto loop :end

echo0327
質問者

補足

ありがとうございます! 試してみましたがフォルダ内のファイル名は変わっていませんでした。

  • fmxBeem
  • ベストアンサー率54% (325/599)
回答No.1

1.下記をコピーしてメモ帳などにペースト、ファイル名を「rename.bat」として保存して下さい。 dir /a:d "%~1" if %errorlevel%.==1. call :foldersyutoku "%~dp1" if %flag%.==1. goto syori set name=%~nx1 goto :EOF :syori ren %1 "%name%%~nx1" REM ren %1 "%name%%~nx1" shift If %1.==. goto :EOF set flag=0 goto home :foldersyutoku pushd %1 Call "%~f0" "%CD%" set flag=1 2.rename.batにjpgファイルをドラッグ&ドロップすれば先頭に親フォルダ(ABC)名を付加してリネームします。 念のため、テストしてみてくださいね(^^)

echo0327
質問者

お礼

早速の回答ありがとうございます。 ファイルをドラッグ&ドロップで複数あるjpgファイルの一枚にファイル名が付け足され事は確認出来ました。 jpgファイルが複数格納されているフォルダをドラッグ&ドロップでファイル内の全てのjpgファイルの頭にフォルダ名を付け足す事は可能ですか? 宜しくお願い致します。

関連するQ&A

  • フォルダ名をファイル名の先頭に追加できるバッチ

    例えばDドライブ直下にAからZまでの26個のフォルダがあり、例えばフォルダAの中に01から99までの連番で01.txt~99.txtと言うものがあったときに、バッチファイルのアイコンにフォルダAをドラッグアンドドロップするとフォルダ内のファイルがA01.txt~A99.txtと言うファイルが生成される、なお、フォルダはAからZまでまとめてバッチファイルのアイコンにドラッグアンドドロップしたらファイル名をリネームできるものを希望します、そのようなバッチはどのように作ったらよいのでしょうか。 当方の環境はwindows7 HomePremiam 64bitです。

  • フォルダ名をファイル名の頭につけるバッチ

    お世話になります。 現在、ファイルをフォルダ単位で保存していて、保存しているフォルダは数百個あり、各フォルダに入っているファイルの数はまちまちなのですが、各フォルダの中にあるファイル(全てフォルダの直下にファイルを保存しており、サブディレクトリは作成していないはずです)の頭にフォルダ名を一括でつけたいのですが、そのようなバッチファイルは作れるでしょうか? やりたいこととしては、例えば、"6753シャープ"というフォルダ内に複数個のファイル、例えば"01.txt"、"02.txt"、"03.txt"というファイルがある場合、 それらのファイルをまとめてバッチファイルのアイコンにドラッグアンドドロップしたらファイルを"6753シャープ01.txt"、"6753シャープ02.txt"、"6753シャープ03.txt" というようにリネームさせることは可能でしょうか? 使用しているPCはWindows7 Professionalです。

  • バッチファイルの作成 part2

    昨日に引き続き、バッチファイルについて質問させて頂きます。 参考書やWebサイトを参照して、次の手順を行う方法が解りませんでした・・・ -----実行したい事----- 1.バッチファイルの手順で、C:\abcフォルダ内のdef.txtをフリーソフトにドラッグ&ドロップをする。 2.フリーソフトの「開始」ボタンを押す。 3.フリーソフトの「終了」ボタンを押す。 4.フリーソフトで作業を行ったgh.txtを開く。 5.C;\abcフォルダのウィンドウを開く。(フォルダをダブルクリックで開いた時と同じ事をしたいのです。) -----終了----- 1の手順でフリーソフトを起動すると、コマンドプロンプトのような画面ではなくて、ドラッグ&ドロップをする画面と設定内容が選べる画面になっています。def.txtをその画面にドラッグ&ドロップをする手順でつまづいております。 また、2.3はフリーソフト上の操作をバッチファイルで表現する方法もわかりませんでした。4も同じです。 本当に行き詰ってしまっており、再度ご教授の程、宜しく御願い致します。

  • バッチファイルで任意のフォルダを作りたい

    全くの初心者です。 DOSのバッチファイルで 都度入力した文字のフォルダ名を作りたいのですが方法はありますか? 例) バッチを起動した時に文字入力を要求し 『ABC』と入力したら ABCというフォルダを作る。 よろしくお願いいたします。

  • 指定フォルダ配下のファイルを個別圧縮するバッチファイルの作成

    下記の処理を行うバッチファイルは作れないでしょうか? 1.バッチファイルにフォルダをドラッグ&ドロップ 2.ドラッグ&ドロップしたフォルダ配下のファイルを全て個別圧縮する (例.C:\AAAをドラッグ&ドロップした場合) フォルダAAA | ・111.txt | LフォルダBBB | ・222.txt | ・333.txt | LフォルダCCC | ・444.txt | LフォルダDDD ・555.txt ↓ フォルダAAA | ・111.zip | LフォルダBBB | ・222.zip | ・333.zip | LフォルダCCC | ・444.zip | LフォルダDDD ・555.zip

  • バッチファイルを作りたい。

    こんにちは いまある作業をしていて、どうにか自動化できないかと調べていたら、 バッチファイルというものがあると知りました。 バッチファイルに、ファイルをドロップすると、そのファイルの名前のフォルダが作成され、 そのフォルダの中に、B,Cの2つのフォルダ、さらにフォルダBのなかに B1、B2、B3、B4の4つのフォルダが作成される。 というバッチファイルを作りたいです。 また、一度に複数のファイルをドロップしても、動くようにしたいです。 どなたか詳しい方、教えてください。 よろしくお願いします。

  • バッチファイル(batファイル)

    あることを自動化するために、あるサイトのバッチファイルをコピー&ペーストして使おうと思っています。 (自由に使用していいと表記してあります) しかし、使用されているプログラムがいくつか入手できなかったり、バッチファイルをいくつか繋げたらら上手くいかなかったりと、 色々と問題があり、自分で改変をしています。 初めてバッチファイルの中身を触ったような初心者なので、色々と試行錯誤しているのですが、行き詰ってしまいました。 上記のように初心者なので、言葉がおかしい所があったりするかもしれませんが、 回答よろしくお願いします。 本題です。 ファイルのドロップで処理を始めたいのですが、どうやらファイル名に半角の#が含まれていると途中でエラーが出るので、 処理の一番最初でファイル名の半角#を全角#に置き換えようとしたのですが上手くいきませんでした。(ファイル名の変更) なので新たなバッチファイル、"ドロップ用.bat"を作り、そこでファイルの置き換えを行ってから、callコマンドで 本命のバッチファイルaaa.batを呼び出そうとしました。 それでもうまくいかないため、質問させていただきました。 バッチファイルは一つのフォルダーにまとめていますが、ドロップするファイルは別のフォルダーにあります。 なお、ドロップするファイルのフルパスには、空白が含まれる可能性があります。 ドロップ用.bat--------------------------- @echo off setlocal set abc=%~n1 set def=%abc:#=#% ren "%~nx1" %def%%~x1 set ghi="%~dp1%def%%~x1" set jkl=%~dp0 call "%jkl%aaa.bat" "%ghi%" rem pause endlocal exit /b ----------------------------------------- ややこしくてまわりくどいバッチファイルですみません。 Windows7を使っています。 C:\windows\system32\cmd.exeと上には書いてあります。 よろしくお願いします。

  • バッチファイル、ドラッグ&ドロップしたファイルだけ

    [ファイルを名前を変えて複数個コピーを作成、を一括で] http://okwave.jp/qa/q7808481.html という質問をしていたのですが、 「wordのファイルを、ファイル名を変えて複数コピーするためのフリーソフ 」 http://okwave.jp/qa/q5651889.html という質問を見つけ、参考にしてバッチを編集したのですが、使い勝手が悪いです。 copy *.* 1.* copy *.* 2.* copy *.* 3.* copy *.* 4.* copy *.* 5.* copy *.* 6.* copy *.* 7.* copy *.* 8.* というバッチを作ったのですが、 このことにより、コピーを複数作成したいファイルをバッチファイルのアイコンにドラッグ&ドロップすることにより、カレントディレクトリにコピーが8個作成できるようになったのですが、 ドラッグ&ドロップしたファイル以外に、同一ディレクトリにあるファイルすべてのファイルのコピーが作成されてしまいます。 コピーするのをドラッグ&ドロップしたものだけにする方法があれば教えてください。

  • バッチファイルで、ショートカットから同名の元ファイルを検索して別フォルダにコピー

    複数の画像(.jpg)ファイル(例:「CIMG0797.JPG」)のうち気に入ったものだけを、同じファイル名のショートカット(例:「CIMG0797.JPG へのショートカット」)として別フォルダに保存してあります。そのショートカット・リストから、同じ名前の元ファイルだけを選択してさらに別のフォルダにコピーしたいのですが、簡単に実行するには、どのようなバッチを組めばよいでしょうか? あるいは、フリーウェアのツールなどをご存知でしたら教えてください。 よろしくお願いいたしますm(__)m

  • フォルダ内のファイル名を一括変更したい

    windows10を使っています。 指定したフォルダ内のファイル名を一括変更したいです。 具体的には、以下のようにファイル名内の空白を「_」に置換したいです。 変更前:スクリーンショット 2021-01-01 104535.jpg ↓ 変更後:スクリーンショット_2021-01-01_104535.jpg バッチファイルで手軽に実行できるとうれしいです。 やりたいことの具体例: 空白置換.batを実行したら、空白置換.batが置いてあるフォルダ内のファイル名が一括変更できる。 空白置換.bat内で、変更対象とする拡張子を指定できる。 よろしくお願いいたします。