あなたのコマンドは、パラメーター区切り文字であるため、デイジーチェーン コマンドには使用できないD:\folder\1\1.jpg\
ため、次のようなフォルダーを作成します。;
後者の場合は、 を使用する必要があります&
。
コマンドには他にもいくつかの問題があります。
- 現在の作業ディレクトリに移動先フォルダを作成し (
md %I
)、フル パスを使用してファイルを移動します ( %~dI%~pI%~nI\1.jpg
)。これは、現在の作業ディレクトリに .jpg ファイルを含むサブフォルダーがあるとすぐに失敗します。
- 変数を引用符で囲まないため、パスまたはファイル名にスペースが含まれている場合にもコマンドは失敗します。
- ファイルをサブフォルダーに移動すると、再帰的なフォルダー トラバーサル (
for /r
) で無限ループが作成されます。
2 つの別々のループを実行することをお勧めします。1 つは宛先フォルダーを作成するため、もう 1 つはファイルを移動するためです。
for /r %I in (*.jpg) do @mkdir "%~dpnI"
for /r %I in (*.jpg) do @move "%~fI" "%~dpnI\1%~xI"