メインの大量のフォルダの中に、複数のサブフォルダがあり、その中に複数m4aファイルがあるのですが、フォルダ名、ファイル名ともに長すぎてバッチファイルが上手く動きません(動かしたいコマンドは絶対パスが必要なffmpeg)。そのため、フォルダ名、ファイル名ともにそれぞれ37字以内に納めたいのですが、サブフォルダまで一気に名前を短縮できるようなコマンドはありますか。それともforループで巡回しないとだめでしょうか。しかしディレクトリが長くなりすぎるので上手くいかないような気がするのですが。

1件の回答

回答を書く

1124132

2026-06-23 04:20

+ フォロー

●動作しない理由

FOR /D %%A IN (\u0026quot;%%B\\*\u0026quot;) DO (

→ファイルを処理するのに /D でフォルダを列挙してどうするんです?





●パス名の短縮

SUBSTコマンドで仮想ドライブにすれば良いと思います。

そのサブフォルダを Xドライブとして扱うようにするには

SUBST X: サブフォルダ(絶対 or 相対)パス

とすれば、そのサブフォルダ直下のファイルは X:\\ファイル名 で

アクセスできます。



仮想ドライブの解除は SUBST X: /D でできるので、バッチファイルでは

SUBST X: サブフォルダ

変換処理

SUBST X: /D

と繰り返せば異なるサブフォルダでも扱えます。



ちなみにファイル名が長い場合は、ファイルシステムが保持しているなら

8.3形式(FORコマンド内の変数なら %~sA)を使うという方法もありますが、

変換処理前に一旦 短い名前へ変更し、変換処理後に元の名前へ戻すという

やり方でも良いと思います。

----

QID:11321743971

UID:1053072163

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有