我有
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
) 创建一个无限循环。我建议运行两个单独的循环,一个用于创建目标文件夹,第二个用于移动文件:
for /r %I in (*.jpg) do @mkdir "%~dpnI"
for /r %I in (*.jpg) do @move "%~fI" "%~dpnI\1%~xI"