私は持っている
D:\
folder\1.jpg、
D:\folder\2.jpg、D:\folder\3.jpg
....のように
私は欲しい
D:\フォルダ\1\1.jpg、
D:\フォルダ\2\1.jpg、
D:\フォルダ\3\1.jpg
....
このコード
FOR /R %I IN (*.jpg) DO (md %~nI; move %I %~dI%~pI%~nI\1.jpg)
のようなフォルダを作成しますD:\folder\1\1.jpg\
私は何を間違っていますか?
私は持っている
D:\
folder\1.jpg、
D:\folder\2.jpg、D:\folder\3.jpg
....のように
私は欲しい
D:\フォルダ\1\1.jpg、
D:\フォルダ\2\1.jpg、
D:\フォルダ\3\1.jpg
....
このコード
FOR /R %I IN (*.jpg) DO (md %~nI; move %I %~dI%~pI%~nI\1.jpg)
のようなフォルダを作成しますD:\folder\1\1.jpg\
私は何を間違っていますか?
これを使って
FOR %I IN (*.jpg) DO (
MD %~nI & copy %I %~nI\1.jpg & del %I)
&連続コマンドのパイプに使用します。また、move名前を変更できないため、使用するだけですcopy
あなたのコマンドは、パラメーター区切り文字であるため、デイジーチェーン コマンドには使用できない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"