• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ディレクトリ名をファイル名するバッチファイル)

バッチファイルでディレクトリ名を取得してフォルダを作成する方法

このQ&Aのポイント
  • バッチファイルでディレクトリ名を取得して、その名前で新しいフォルダを作成する方法について説明します。
  • また、フォルダ内の特定のファイルの場所や、別のフォルダにあるファイルをコピーする方法についても解説します。
  • 質問者の要望に応じて、可変するディレクトリの取得方法も詳しく説明します。

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

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

No.2 です。 失礼しました。記載ミスです。%~nxd ではなく %%~nxd に修正して下さい。 %%d --> 111\222\配下のパスとディレクトリ名が順に入ります(for文の変数) %%~nxd --> ~nxでパスのなかのディレクトリ名を取り出します。  ~n を間につけることでファイル名(今回はディレクトリ名)を取り出す  ~x を間につけることでファイル名の拡張子(今回はディレクトリ名の"."以降)を取り出す。 nやxなどの説明は for /? のヘルプの最後の方を参照してください。

jeaaaa1
質問者

お礼

補足のご回答ありがとうございました。 返信が遅くなり申し訳ありません。 質問の内容と違う問題に遭遇してしまい、 まだ試せていない状況です。

その他の回答 (2)

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

jeaaaa1さんこんばんは。 例の図から、222ディレクトリの下には可変のbbbディレクトリしかないんですよね。 それならばmmm.bat のある場所がカレントディレクトリだとして、 for /d %%d in (111\222\*) do set bbb=%~nxd copy xxx.text 444\222\%bbb%\333\ copy zzz.text 444\222\%bbb%\ copy zzz.text 444\%bbb%\ とすればいかがでしょうか。

jeaaaa1
質問者

補足

ご回答ありがとうございます。 この記述を実行しましたが、 残念ながらcopyされませんでした。 記述の内容は何となく分かったのですが、 「%~nxd」の意味がわかりません。 お教え頂けないでしょうか。

回答No.1

特定のフォルダの配下から、特定のフォルダにファイルをコピーするのであれば Robocopyというツールがありますが如何でしょうか? フォルダも自動で作成してくれるので、意外と便利です。 回答になっていなければすみません。

jeaaaa1
質問者

補足

ご回答ありがとうございます。 このツールでも出来るかどうか検討してみます。

関連するQ&A

専門家に質問してみよう