
批量重命名文件夹的问题
我有很多的文件夹在建立的时候名字后上面全附加了一个固定的字符串,我想批量删掉它,怎么办?注意:不是文件,是文件夹!不是那种各个文件夹被自动命名为A\A1\A2\A3……的...
我有很多的文件夹在建立的时候名字后上面全附加了一个固定的字符串,我想批量删掉它,怎么办?
注意:不是文件,是文件夹!
不是那种各个文件夹被自动命名为A\A1\A2\A3……的结果。
感谢两位。是第一种情况。不过,不好意思,我没学过dos文件的操作,能否请你们把步骤说详细些? 展开
注意:不是文件,是文件夹!
不是那种各个文件夹被自动命名为A\A1\A2\A3……的结果。
感谢两位。是第一种情况。不过,不好意思,我没学过dos文件的操作,能否请你们把步骤说详细些? 展开
3个回答
展开全部
“上面全附加了一个固定的字符串,我想批量删掉它。。。”
楼主的意思是删掉文件夹名字中多余的字符串还是文件夹??
姑且理解为第一种,代码如下(执行请按照后面的说明部分):
@echo off
for /f %%i in ('dir /b /AD') do call :name %%~ni
::此for语句实现循环列出当前目录下子目录名,每列出一个目录跳转至:name处执行
goto :eof
::跳到文件末,结束批处理
:name
set j=%1
::将目录名保存至变量j
set filename=%j:string=%
::删除目录中的string,执行时string要替换为你要删除“固定的字符串”
ren %j% %filename%
::重命名文件名
goto :eof
::跳转到文件末,回到for语句执行
说明:
1、将代码中string部分替换为你想删除的“固定字符串”,保存为rename.bat,并将该批处理放到与要处理的文件夹同一个目录下。
2、缺点:只能处理路径中不含空格的文件目录。
To BB石俊杰:
for /d %%i in (*)do echo %%i>>d.tmp 没想到for语句就有/d参数实现获取目录名功能,学习了!!! 不过美中不足,你实现的是删除目录,不是重命名,小小的修改一下就完美了 o(∩_∩)o...
楼主的意思是删掉文件夹名字中多余的字符串还是文件夹??
姑且理解为第一种,代码如下(执行请按照后面的说明部分):
@echo off
for /f %%i in ('dir /b /AD') do call :name %%~ni
::此for语句实现循环列出当前目录下子目录名,每列出一个目录跳转至:name处执行
goto :eof
::跳到文件末,结束批处理
:name
set j=%1
::将目录名保存至变量j
set filename=%j:string=%
::删除目录中的string,执行时string要替换为你要删除“固定的字符串”
ren %j% %filename%
::重命名文件名
goto :eof
::跳转到文件末,回到for语句执行
说明:
1、将代码中string部分替换为你想删除的“固定字符串”,保存为rename.bat,并将该批处理放到与要处理的文件夹同一个目录下。
2、缺点:只能处理路径中不含空格的文件目录。
To BB石俊杰:
for /d %%i in (*)do echo %%i>>d.tmp 没想到for语句就有/d参数实现获取目录名功能,学习了!!! 不过美中不足,你实现的是删除目录,不是重命名,小小的修改一下就完美了 o(∩_∩)o...
展开全部
@echo off
set/p name=输入你要驱分固定的字符串进行筛选:
cls&&echo 你确定没输入错吗? 你输入的是:“%name%”
echo 确定没错就按任意键开始删除了。输错了就关了重开一次吧。
pause>nul
for /d %%i in (*)do echo %%i>>d.tmp
for /f "Delims=" %%i in ('find "%name%" d.tmp')do rd /q/s "%%i"
set/p name=输入你要驱分固定的字符串进行筛选:
cls&&echo 你确定没输入错吗? 你输入的是:“%name%”
echo 确定没错就按任意键开始删除了。输错了就关了重开一次吧。
pause>nul
for /d %%i in (*)do echo %%i>>d.tmp
for /f "Delims=" %%i in ('find "%name%" d.tmp')do rd /q/s "%%i"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个一个重命名不得了吗,我就是这样的,之后的一个个复制粘贴一下就够了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询