• ベストアンサー

バッチファイルでフォルダを作りたい

”123”というフォルダの中にバッチファイルがあります このバッチファイルを実行すると、フォルダ名を取得して、”123 あ”というフォルダと ”123 い”というフォルダをフォルダ”123”の中に作りたいのですができるのでしょうか? そして、このバッチファイルをコピーして、フォルダ”456”の中に貼り付けます。 ここでバッチファイルを実行すると、フォルダ”456”のなかに、”456 あ”と”456 い”というフォルダを 作れるようにしたいのですが。 お分かりの方、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.3

No.2です。少し訂正します。(フォルダ名に空白がある場合の対応) ちなみにこのバッチはフォルダ名の文字数が可変でもOKです。 :-------------------------- mkAI.bat pushd "%~dp0" for %%d in ( "%CD%" ) do set dirname=%%~nxd md "%dirname% あ" md "%dirname% い" popd

viyamin
質問者

お礼

回答ありがとうございました うまくいき、大変たすかりました

その他の回答 (3)

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.4

#1 です。 #3 のpita-goraさんのバッチの方がクールですね。 フォルダ名の長さに依存しないし、タスクスケジューラでも実行できるので、より汎用的です。

viyamin
質問者

お礼

回答ありがとうございました

  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.2

以下のようなバッチで実現できます。 :-------------------------- mkAI.bat pushd %~dp0 for %%d in ( %CD% ) do set dirname=%%~nxd md "%dirname% あ" md "%dirname% い" popd

viyamin
質問者

お礼

回答ありがとうございました

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

フォルダの名前が 123、456 のように常に3文字固定なら、比較的簡単ですね。 ■myMkdir.bat REM ここから↓↓↓↓↓↓↓↓↓↓↓ @echo off REM バッチファイルの場所を取得 set myhome=%~dp0 REM カレントフォルダ名取得(フルパスの後ろ4桁を取得) set dirName=%myhome:~-4% REM カレントフォルダ名取得(\マークを空文字に置換) set dirName=%dirName:\=% REM あフォルダを作成 mkdir "%myhome%\%dirName% あ" REM いフォルダを作成 mkdir "%myhome%\%dirName% い" REM ここまで↑↑↑↑↑↑↑↑↑↑↑ フォルダの名前が、場合によっては 1234 だったり 45678 だったりするとなると、VBScriptやPowerShellなどを使うか、もう1つ、別のバッチファイルを作っておくか、が必要です。 (この場合、バッチ内のサブルーチンだと難しそうな気がするので) 以下の例では、パス情報を取得するバッチ(例えば getFileName.bat など)を別個に作っておき、バッチの中から、「call getFileInfo .」見たいな感じで呼び出す事でカレントフォルダ名を取得しています。 この場合の注意点としては、フォルダ内で直接クリックした場合はご希望の処理が可能ですが、プロンプトからパスを指定した場合は、うまく動きません。 (つまり、タスクスケジューラなどで使う場合は、もう一工夫必要になります) それと、言うまでもないと思いますが、他のフォルダに貼り付ける時も、2つのバッチファイルを両方貼り付けてください。 ■getFileName.bat REM ここから↓↓↓↓↓↓↓↓↓↓↓ @echo off set fileName=%~n1 REM ここまで↑↑↑↑↑↑↑↑↑↑↑ ■myMkdirEx.bat REM ここから↓↓↓↓↓↓↓↓↓↓↓ @echo off REM バッチファイルの場所を取得 set myhome=%~dp0 REM カレントフォルダ名取得(引数の「ピリオド」はタイプミスではありませんw) call getFileName . set dirName=%fileName% REM あフォルダを作成 mkdir "%myhome%\%dirName% あ" REM いフォルダを作成 mkdir "%myhome%\%dirName% い" REM ここまで↑↑↑↑↑↑↑↑↑↑↑

viyamin
質問者

お礼

回答ありがとうございました フォルダの名前の文字数は固定です 実行したところ、ばっちり期待の動作をしました 私にとって、大変便利なバッチファイルになりました

関連するQ&A