更名-改名
批处理多解十例
一、!
二、根据条件文件批量改名:一个文件夹内有数个文件,文件名为 ts001001.pdf -ts001100.pdf 递增有一个文本文件,里面有相对应的名称,第一行为第一个文件的汉字名。如:“世界科技全景百卷书(1)原始科技;世界科技全景百卷书(2)数学与物理的发端;世界科技全景百卷书(3)近代科技…………”现在想根据那个文本文件,把文件名改为 对应的汉字名加文件扩展名。如:第一个文件 ts001001.pdf 改为 世界科技全景百卷书(1)原始科技.pdf……
三、广告策划家★【汉魅huntmine—校内校外学习资源高速下载】.chm如前,我有很多这样的文件,怎样可以把 ★【汉魅huntmine—校内校外学习资源高速下载】 这个部分同时删除呢!
四、bat批量改名,原数字名每个加10!我有一堆TXT文件,比如:1.txt;5.txt;8.txt;13.txt;33.txt……我想让他们在原来的文件名基础上+10改成:11.txt;15.txt;18.txt;23.txt;43.txt……求高手给个BAT命令...OTZ!1L的大哥..你给的BAT代码没起作用啊.囧,好吧.. 是我没说清楚!其实,是我有一堆不连续数字命名的txt文件,他们都在3000以上(比如3968.txt) 我把1L大哥的代码里// set /a tname=sname+10 改成了// set /a tname=sname-10可是运行结果除了把第一个文件改成了".txt"其他都没有反应,囧!我在代码结尾加了pause 看到一堆.."存在一个重命名文件,或是找不到文件"求解..
五、bat批量改名,我有一堆文件:1(1).txt;22(22).txt;333(333.txt。我想把后面括号里面的去除他们改成1.txt;22.txt;333.txt求高手帮忙,不好意思,我稍少打了半个括号竟然添加了你们这么多麻烦,是在不好意思!
六、批处理批量改名的几个问题,
七、我的批处理是这样的,
八、用批处理命令批量改名可以吗?如:[jumpcn][D-GRAY-MAN][22][704x396].rmvb到 [jumpcn][D-GRAY-MAN][103][848x480].rmvb修成022.rmvb到103.rmvb!
九、求文件中提取第一行做标题批量改名程序或批处理命令!求可以提取txt文件中第一行内容作为本txt文件标题,并批量改名的程序或批处理命令。如:“001.txt”文件中的第一行是“百度知道”,要求把“001.txt”改名成“百度知道.txt”。
十、批量导出和更改文件名的几种方法
一、如何将名称为图片用批命令改为也就是去掉“-”及“-”以前的字符:
@echo off
setlocal enabledelayedexpansion
set "xz=%%~nxa"
set xz=!xz:*-=!
ren %%~sa "!xz!"
)
pause
——在JPG所在文件夹运行
@echo off
title BAT-GO百度知道团队asdfwxyz
exit
______________________________________________________________________
@echo off
title BAT-GO百度知道团队asdfwxyz
setlocal enabledelayedexpansion
set a=%%1
set a=!a:~4,20!
ren %%1 !a!
)
exit
______________________________________________________________________
——能用的方法不少,自己选一个比较合适你的吧。
二、根据条件文件批量改名:
一个文件夹内有数个文件,文件名为 ts001001.pdf -ts001100.pdf 递增有一个文本文件,里面有相对应的名称,第一行为第一个文件的汉字名。如:
“世界科技全景百卷书(1)原始科技
世界科技全景百卷书(2)数学与物理的发端
世界科技全景百卷书(3)近代科技
…………”
现在想根据那个文本文件,把文件名改为 对应的汉字名加文件扩展名。如:
第一个文件 ts001001.pdf 改为 世界科技全景百卷书(1)原始科技.pdf
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%i in (list.txt) do (
set/a a+=1
if !a! LSS 10 (set b=00!a!) else (
if !a! LSS 100 (set b=0!a!) else (
set b=!a!))
ren ts001!b!.pdf "%%i".pdf
)
——我这个效率很高: list.txt为列表的txt
@echo off&setlocal enabledelayedexpansion
for /f %%i in (a.txt) do (
set /a num+=1
set /a n=!num!+1000
ren ts00!n!.pdf %%i.pdf
)
pause
——这个就快多了,但文件数不能大于9000!
三、广告策划家★【汉魅huntmine—校内校外学习资源高速下载】.chm如前,我有很多这样的文件,怎样可以把 ★【汉魅huntmine—校内校外学习资源高速下载】 这个部分同时删除呢!
保存为BAT文件,双击执行“
@echo off & setlocal enabledelayedexpansion
set "str_del=★【汉魅huntmine—校内校外学习资源高速下载】"
for /f "delims=" %%i in ('dir /s/b') do (
set "foo=%%~nxi"
set foo=!foo:%str_del%=!
ren "%%~i" "!foo!"
)
exit
四、bat批量改名,原数字名每个加10!我有一堆TXT文件,比如:1.txt;5.txt;8.txt;13.txt;33.txt……我想让他们在原来的文件名基础上+10改成:11.txt;15.txt;18.txt;23.txt;43.txt……求高手给个BAT命令...OTZ
1L的大哥..你给的BAT代码没起作用啊.
囧,好吧.. 是我没说清楚!其实,是我有一堆不连续数字命名的txt文件,他们都在3000以上(比如3968.txt) 我把1L大哥的代码里// set /a tname=sname+10 改成了// set /a tname=sname-10可是运行结果除了把第一个文件改成了".txt"其他都没有反应,囧!我在代码结尾加了pause 看到一堆.."存在一个重命名文件,或是找不到文件"求解..
@echo off
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%i in ('dir /a-d /b *.txt') do (
ren %%i aaa!l!.txt
)
for /f "tokens=* delims=" %%m in ('dir /a-d /b *.txt') do (
ren %%m !d:aaa=!.txt
)
五、bat批量改名,我有一堆文件:1(1).txt;22(22).txt;333(333.txt。我想把后面括号里面的祛除他们改成1.txt;22.txt;333.txt求高手帮忙,不好意思,我稍少打了半个括号竟然添加了你们这么多麻烦,是在不好意思!
将以下代码保存为批处理,然后放在你要重命名的文件所在有文件夹下双击就可以了。
@ECHO OFF
title "忆林子--批处理重命名 http://hi.baidu.com/忆林子"
COLOR 0a
rem 用法:将该批处理放在需要重命名的文件夹下,双击即可。
set tmpFileList=tmpFileList.nsbb
rem 初始化:删除前一次的文件列表
rem 注:前一次操作未正常完了时
CALL :delTmpFile
rem 生成文件名列表
for /f "tokens=*" %%a in (
'dir "*(*" /a /b'
) do (
echo %%a>>"%tmpFileList%"
)
rem 从文件列表中读取文件名,
rem 并以"("作为分隔符,把文件名分为两部分。
rem 例如:文件名 1(1).txt将被分为 "1" 跟 "1).txt" 两部分
for /f "tokens=1,* delims=^(" %%a in (
'more "%tmpFileList%"'
) do (
rem 重命名
rem %%a:分隔出来的文件名的"("前面的部分,例如:1
rem %%b:分隔出来的文件名的"("后面的部分,例如:1).txt
rem %%~xb:就是取得后面部分的"."之后的内容",例如:.txt
rem 因此以下的ren命令在真正执行的时候,将会是
rem ren "1(1).txt" "1.txt"
echo 正在将 "%%a(%%b" 重命名为 "%%a%%~xb"
ren "%%a(%%b" "%%a%%~xb"
)
CLS
rem 终了操作:删除临时文件列表
CALL :delTmpFile
echo ====================================================
e重命名操作完毕。。
echo ====================================================
set /p a=请按回车退出。
EXIT
:delTmpFile
del "%tmpFileList%" /q 1>nul 2>nul
goto :EOF
怎么没有反括号啊?再多举几个例子,1、2与3、4不是同一规律。
55555(555.txt
666666(666.txt
一共有多少个文件,最后的那个名字是?
for /f "delims=(. tokens=1,*" %i in ('dir /b *.txt') do ren %i*.txt %i.txt
我也是现学现卖,我不明白的是tokens=1就行,而且tokens的数只要是1开头,后面随便是几都行 如1*或1,2或1,345或1,*
同级目录:
@echo off
ren *(* *().* & ren *(*).* *().*
for /f "tokens=1-2 delims=()" %%i in ('dir /b *.txt') do (
exit
@echo off
for /f "delims=" %%a in ('dir/b *.txt') do (
for /f "tokens=1 delims=(" %%A in ('dir/b %%a') do (
set newname=%%A
>>NameBak.ini echo %%a %%A
ren "%%a" "%%A.txt"
))
pause.
保存在同级目录下双击,有问题百度HI我。
六、批处理批量改名的几个问题
有一大批图片文件有JPG、GIF、BMP等,我想把它们以自然数改名并且加上前缀。比如:图片文件为、、等,把它们改为:美女图片、美女图片、美女图片……
--------------------------------------
@echo off&setlocal enabledelayedexpansion
set /a n+=1
set name=000!n!
ren "%%~i" "!name:~-3!%%~xi"
)
exit
批处理作用是根据目录名改目录下面的文件名和扩展名例如自动改成如下就是在文件名前自动添加当前目录名,并且后面跟随数字序列求批处理自动根据目录名改文件名的批处理100分寻找高手,好用另外加满分鼓励
@echo off&SetLocal EnableDelayedExpansionFor /f "delims=" %%i in ('dir /s /b *.*') do (
@echo offtitle 修改文件名&color 0a&setlocal enabledelayedexpansion::获取目录名set pa=%cd%set s=for /l %%i in (1,1,100) do ( set pa=!pa:*\\=!)echo.&echo 获取的目录名为:&echo [%pa%]::修改文件名@rem 记录文件数量,在重命名的时候要用set a=0 for /f "delims=" %%i in ('dir /b *.html') do ( @rem 文件数量小于100,在变量a前面加多0重命名 ren "%%i" "%pa%!s!!a!.html" set /a a+=1)echo.&echo.&echo 文件名修改完毕。pause>nul写得有些粗糙。敬请原谅。哪位大侠有好的意见或建议请麻烦提出
七、我的批处理是这样的:
for /r E:\图片怎么写?
请问怎么把大量的图片依次改名为
一楼说的那样改名右括号 不是我的要求
@echo off&Setlocal EnableDelayedExpansion
set n=100
for /r E:\图片
)
——————————
我曾经也遇到过这种问题,不过我的要求比你的多,一般目录底下还存在子目录,而且命名文件的格式为 子目录名-序号,当时我写了几种代码,现提供最精炼的代码如下:
@echo off&Setlocal EnableDelayedExpansion
for /r %%i in (.) do (
)
八、用批处理命令批量改名可以吗?
如:[jumpcn][D-GRAY-MAN][22][704x396].rmvb到
修成022.rmvb到103.rmvb
@echo off
for /f "delims=" %%i in ('dir /s/b *.rmvb') do (
)
exit
完全可以。
方案1;
可以用dos命令ren,比如这样;
1.在你的这些文件目录下,新建一个文本文件,然后把扩展名改为bat,这就是一个批处理命令的可执行的脚本了。
2.还是用记事本编辑这个脚本,使用ren命令,形如; ren a.rmvb newname.rmvb 这就是把a文件名字改为newname。
然后就是重复写若干行这样的命令,每行处理一个文件。
最后就是保存脚本,关闭后,双击执行。
方案2;
下载批量改名小工具软件,你上网搜,很多,这些工具一般是先设置改名规则,然后执行实现的。可以替换文字,在指定位置删除/插入若干文字,等等。
@echo off& setlocal enabledelayedexpansion
for /f "tokens=1-3* delims=[]" %%1 in ('dir /b *.rmvb')do (set wind=%%3&& set wind=00!wind!
ren "[%%1][%%2][%%3][%%4" !wind:~-3!.rmvb)
九、求文件中提取第一行做标题批量改名程序或批处理命令!求可以提取txt文件中第一行内容作为本txt文件标题,并批量改名的程序或批处理命令。
如:“001.txt”文件中的第一行是“百度知道”,要求把“001.txt”改名成“百度知道.txt”谢谢了。
孤星_ - 探花 :你的答案不错,简单快捷。为什么有的还是提示说找不到文件呢?
@echo off
setlocal enabledelayedexpansion
for %%a in (*.txt) do set "txt=%%a" & call :aa
pause
:aa
for /f "usebackq delims=*" %%b in ("!txt!") do (
set "a=%%a" & set "b=%%b"
ren "!a!" "!b!.txt"
goto :eof
)
PS:放在要处理的文件夹运行,如果也要处理子文件夹第一个for命令后面加上/r参数...~!
十、批量导出和更改文件名的几种方法:
方法一:tree命令
命令提示符下: (开始/运行/CMD)
tree (要获得文件名的文件夹的路径)/f >(存放的路径/filename)
例如:要获得C盘下的所有文件的文件名,并将生成的文件保存到D盘,可使用如下命令
tree□C:□/f >D:/contents.txt “□”代表一个空格 小tip:
可以先在记事本中写好,将其粘贴(注意:不能用Ctrl+V)到cmd.exe程序中。 例:将下列复制到cmd.exe中即可
tree D: /f>E:/contents.xls
方法二:dir命令
dir c:\\ >d:\\1.txt
将C盘根目录里的文件夹名和文件名都保存在D盘目录下的1.txt里,此文件可导入excel作进一步处理。dir可加参数 /w 等。