批处理 文件夹 文件名
批处理文件移动文件重命名在D盘有个文件夹为[B000801]不含括号内含几个图片(需要删除这几个图片)一个子文件夹名为[ps]ps里面有几个图片[需要这样处理原图片名字是...
批处理 文件移动 文件重命名
在D盘有个文件夹为[B000801] 不含括号
内含几个图片(需要删除这几个图片)
一个子文件夹 名为[ps] ps里面有几个图片[需要这样处理 原图片名字是杂乱的 需要改为以父文件夹名B000801开头的规律性名字 B000801 (1).jpg B000801 (2).jpg B000801 (3).jpg ... 并且要把这些文件移到父文件夹B000801中 删除ps文件夹]
最终的结果是
父文件夹中只含有ps原来的已经命名好的图片
D盘有几千个这样的文件夹 怎么批量处理呢
先谢谢各位
D盘里面的文件夹名字都是规律性后面数字+1的
B000801
B000802
B000803
B000804
... 展开
在D盘有个文件夹为[B000801] 不含括号
内含几个图片(需要删除这几个图片)
一个子文件夹 名为[ps] ps里面有几个图片[需要这样处理 原图片名字是杂乱的 需要改为以父文件夹名B000801开头的规律性名字 B000801 (1).jpg B000801 (2).jpg B000801 (3).jpg ... 并且要把这些文件移到父文件夹B000801中 删除ps文件夹]
最终的结果是
父文件夹中只含有ps原来的已经命名好的图片
D盘有几千个这样的文件夹 怎么批量处理呢
先谢谢各位
D盘里面的文件夹名字都是规律性后面数字+1的
B000801
B000802
B000803
B000804
... 展开
展开全部
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir/b/ad "d:\B00????"') do (
set "fpath=d:\%%a"
set "fname=%%a"
pushd "!fpath!\ps"
set count=0
for /f "delims=" %%i in ('dir/b/a-d *.jpg') do (
set/a count=!count!+1
echo Moving [%%i]
call move /Y "!fpath!\ps\%%i" "!fpath!\!fname!^(!count!^).jpg"
)
popd
rd/s/q "!fpath!\ps"
)
echo done.
pause
使用前做好备份.
更多追问追答
追问
谢谢先 能逐行解释一下吗 有些参数我要改的
追答
从第2行开始吧:
for循环查找D盘下B00开头总长度为7个字符串的文件夹(不够的部分用?号来补足)
设置一个变量内容为, 比方说:d:\B000801
设置一个变量为文件夹名字, 比方说:B000801
pushd 进入 d:\B000801\ps文件夹内
设置个计数器count=0
在ps文件夹中寻找所有jpg格式的文件,每找到一个count++
用move命令移动这些文件,同时根据count的值来重新命名
路径popd,返回到程序一开始的路径(你批处理所在的地方)
删除 d:\B000801\ps 这个文件夹以及里面的所有文件
继续for循环处理下一个文件,比方说: d:\B000802,然后重新上述步骤
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询