- ベストアンサー
バッチファイルでフォルダを作りたい
”123”というフォルダの中にバッチファイルがあります このバッチファイルを実行すると、フォルダ名を取得して、”123 あ”というフォルダと ”123 い”というフォルダをフォルダ”123”の中に作りたいのですができるのでしょうか? そして、このバッチファイルをコピーして、フォルダ”456”の中に貼り付けます。 ここでバッチファイルを実行すると、フォルダ”456”のなかに、”456 あ”と”456 い”というフォルダを 作れるようにしたいのですが。 お分かりの方、よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。少し訂正します。(フォルダ名に空白がある場合の対応) ちなみにこのバッチはフォルダ名の文字数が可変でもOKです。 :-------------------------- mkAI.bat pushd "%~dp0" for %%d in ( "%CD%" ) do set dirname=%%~nxd md "%dirname% あ" md "%dirname% い" popd
その他の回答 (3)
- utakataXEX
- ベストアンサー率69% (711/1018)
#1 です。 #3 のpita-goraさんのバッチの方がクールですね。 フォルダ名の長さに依存しないし、タスクスケジューラでも実行できるので、より汎用的です。
お礼
回答ありがとうございました
- pita-gora
- ベストアンサー率70% (102/145)
以下のようなバッチで実現できます。 :-------------------------- mkAI.bat pushd %~dp0 for %%d in ( %CD% ) do set dirname=%%~nxd md "%dirname% あ" md "%dirname% い" popd
お礼
回答ありがとうございました
- utakataXEX
- ベストアンサー率69% (711/1018)
フォルダの名前が 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 ここまで↑↑↑↑↑↑↑↑↑↑↑
お礼
回答ありがとうございました フォルダの名前の文字数は固定です 実行したところ、ばっちり期待の動作をしました 私にとって、大変便利なバッチファイルになりました
お礼
回答ありがとうございました うまくいき、大変たすかりました