admin 管理员组文章数量: 887018
2024年2月21日发(作者:史上最实用的app应用程序2)
提取文件首行为文件名
更名-改名
批处理多解十例
一、如何将名称为;图片用批命令改为,;也就是去掉“-”及“-”以前的字符!
二、根据条件文件批量改名:一个文件夹内有数个文件,文件名为
- 递增有一个文本文件,里面有相对应的名称,第一行为第一个文件的汉字名。如:“世界科技全景百卷书(1)原始科技;世界科技全景百卷书(2)数学与物理的发端;世界科技全景百卷书(3)近代科技…………”现在想根据那个文本文件,把文件名改为 对应的汉字名加文件扩展名。如:第一个文件 改为 世界科技全景百卷书(1)原始科技.pdf……
三、广告策划家★【汉魅huntmine—校内校外学习资源高速下载】.chm如前,我有很多这样的文件,怎样可以把 ★【汉魅huntmine—校内校外学习资源高速下载】 这个部分同时删除呢!
四、bat批量改名,原数字名每个加10!我有一堆TXT文件,比如:;;;;……我想让他们在原来的文件名基础上+10改成:;;;;……求高手给个BAT命令...OTZ!1L的大哥..你给的BAT代码没起作用啊.囧,好吧.. 是我没说清楚!其实,是我有一堆不连续数字命名的txt文件,他们都在3000以上(比如) 我把1L大哥的代码里// set /a tname=sname+10 改成了// set /a
tname=sname-10可是运行结果除了把第一个文件改成了".txt"其他都没有反应,囧!我在代码结尾加了pause 看到一堆.."存在一个重命名文件,或是找不到文件"求解..
五、bat批量改名,我有一堆文件:1(1).txt;22(22).txt;333(。我想把后面括号里面的去除他们改成;;求高手帮忙,不好意思,我稍少打了半个括号竟然添加了你们这么多麻烦,是在不好意思!
六、批处理批量改名的几个问题,有一大批图片文件有JPG、GIF、BMP等,我想把它们以自然数改名并且加上前缀。比如:图片文件为、、等,把它们改为:美女图片、美女图片、美女图片……
七、我的批处理是这样的,for /r E:图片 %%a in (*.jpg) do ren %%a怎么写?请问怎么把大量的图片依次改名为 .....
八、用批处理命令批量改名可以吗?如:[jumpcn][D-GRAY-MAN][22][704x396].rmvb到
[jumpcn][D-GRAY-MAN][103][848x480].rmvb修成到!
九、求文件中提取第一行做标题批量改名程序或批处理命令!求可以提取txt文件中第一行内容作为本txt文件标题,并批量改名的程序或批处理命令。如:“”文件中的第一行是“百度知道”,要求把“”改名成“百度知道.txt”。
十、批量导出和更改文件名的几种方法
一、如何将名称为;图片用批命令改为,;也就是去掉“-”及“-”以前的字符:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /s /b /a-d *.jpg') do (
set "xz=%%~nxa"
set xz=!xz:*-=!
ren %%~sa "!xz!"
)
pause
——在JPG所在文件夹运行
@echo off
title BAT-GO百度知道团队asdfwxyz
for /f "tokens=1,2 delims=-" %%1 in ('dir /b *.jpg') do ren %%1-%%2 %%2
exit
______________________________________________________________________
@echo off
title BAT-GO百度知道团队asdfwxyz
setlocal enabledelayedexpansion
for %%1 in (*-*.jpg) do (
set a=%%1
set a=!a:~4,20!
ren %%1 !a!
)
exit
______________________________________________________________________
——能用的方法不少,自己选一个比较合适你的吧。
二、根据条件文件批量改名:
一个文件夹内有数个文件,文件名为 - 递增有一个文本文件,里面有相对应的名称,第一行为第一个文件的汉字名。如:
“世界科技全景百卷书(1)原始科技
世界科技全景百卷书(2)数学与物理的发端
世界科技全景百卷书(3)近代科技
…………”
现在想根据那个文本文件,把文件名改为 对应的汉字名加文件扩展名。如:
第一个文件 改为 世界科技全景百卷书(1)原始科技.pdf
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%i in () 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
)
——我这个效率很高: 为列表的txt
@echo off&setlocal enabledelayedexpansion
for /f %%i in () do (
set /a num+=1
set /a n=!num!+1000
ren ts00!n!.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文件,比如:;;;;……我想让他们在原来的文件名基础上+10改成:;;;;……求高手给个BAT命令...OTZ
1L的大哥..你给的BAT代码没起作用啊.
囧,好吧.. 是我没说清楚!其实,是我有一堆不连续数字命名的txt文件,他们都在3000以上(比如) 我把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 (
set k=%%~ni
set /a l=k+10
ren %%i aaa!l!.txt
)
for /f "tokens=* delims=" %%m in ('dir /a-d /b *.txt') do (
set d=%%~nm
ren %%m !d:aaa=!.txt
)
五、bat批量改名,我有一堆文件:1(1).txt;22(22).txt;333(。我想把后面括号里面的祛除他们改成;;求高手帮忙,不好意思,我稍少打了半个括号竟然添加了你们这么多麻烦,是在不好意思!
将以下代码保存为批处理,然后放在你要重命名的文件所在有文件夹下双击就可以了。
@ECHO OFF
title "忆林子--批处理重命名 /忆林子"
COLOR 0a
rem 用法:将该批处理放在需要重命名的文件夹下,双击即可。
set tmpFileList=
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" ""
echo 正在将 "%%a(%%b" 重命名为 "%%a%%~xb"
ren "%%a(%%b" "%%a%%~xb"
)
CLS
rem 终了操作:删除临时文件列表
CALL :delTmpFile
echo ====================================================
echo 重命名操作完毕。。。
echo ====================================================
set /p a=请按回车退出。。
EXIT
:delTmpFile
del "%tmpFileList%" /q 1>nul 2>nul
goto :EOF
怎么没有反括号啊?再多举几个例子,1、2与3、4不是同一规律。
55555(
666666(
一共有多少个文件,最后的那个名字是?
for /f "delims=(. tokens=1,*" %i in ('dir /b *.txt') do ren %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 (
ren "%%i()%%j" "%%i%%j")
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
>> echo %%a %%A
ren "%%a" "%%"
))
pause.
保存在同级目录下双击,有问题百度HI我。
六、批处理批量改名的几个问题
有一大批图片文件有JPG、GIF、BMP等,我想把它们以自然数改名并且加上前缀。比如:图片文件为、、等,把它们改为:美女图片、美女图片、美女图片……
--------------------------------------
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /s/b *jpg *.gif *bmp') do (
set /a n+=1
set name=000!n!
ren "%%~i" "!name:~-3!%%~xi"
)
exit
批处理作用是根据目录名改目录下面的文件名和扩展名例如:d::自动改成如下d::........就是在文件名前自动添加当前目录名,并且后面跟随数字序列求批处理自动根据目录名改文件名的批处理100分寻找高手,好用另外加满分鼓励
@echo offsetlocal enabledelayedexpansionset p=d:abcpushd %p%set n=for /f "tokens=*" %%j in
('dir/b/a-d *.jpg') do (set /a n+=1set fn=00!n!ren "%%j" "%%i!fn:~,-3,3!.jpg")
@echo off&SetLocal EnableDelayedExpansionFor /f "delims=" %%i in ('dir /s /b *.*') do ( Set
str=%%~dpi Set str=!str:= ! For %%i in (!str!) do Set end=%%i Set n+=1 If !n! lss 10
Set n=00!n! If !n! gtr 9 If !n! lss 100 Set n=0!n! Ren "%%~fi" "!end!!n!%%~xi" )pause
@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 if !a!
LSS 100 ( if !a! LSS 10 (set s=00)else (set s=0) )else set s= @rem 重命名 ren "%%i"
"%pa%!s!!a!.html" set /a a+=1)echo.&echo.&echo 文件名修改完毕。pause>nul写得有些粗糙。敬请原谅。哪位大侠有好的意见或建议请麻烦提出
七、我的批处理是这样的:
for /r E:图片 %%a in (*.jpg) do ren %%a怎么写?
请问怎么把大量的图片依次改名为 .....
一楼说的那样改名右括号 不是我的要求
@echo off&Setlocal EnableDelayedExpansion
set n=100
for /r E:图片 %%a in (*.jpg) do (
set /a n+=1
ren "%%a" !n:~1!%%~xa
)
——————————
我曾经也遇到过这种问题,不过我的要求比你的多,一般目录底下还存在子目录,而且命名文件的格式为 子目录名-序号.jpg ,当时我写了几种代码,现提供最精炼的代码如下:
@echo off&Setlocal EnableDelayedExpansion
for /r %%i in (.) do (
set n=1000
for /f "delims=" %%a in (' dir /b "%%i*.jpg"') do (
set /a n+=1
ren "%%i%%a" "%%~ni"-!n:~1!%%~xa
)
)
八、用批处理命令批量改名可以吗?
如:[jumpcn][D-GRAY-MAN][22][704x396].rmvb到
[jumpcn][D-GRAY-MAN][103][848x480].rmvb修成到
@echo off
for /f "delims=" %%i in ('dir /s/b *.rmvb') do (
for /f "tokens=3,5 delims=[]" %%a in ("%%~nxi") do (
set "num=00%%a"
call,set num=%%num:~-3%%
call,ren "%%i" "%%num%%%%b"
)
)
exit
完全可以。
方案1;
可以用dos命令ren,比如这样;
1.在你的这些文件目录下,新建一个文本文件,然后把扩展名改为bat,这就是一个批处理命令的可执行的脚本了。
2.还是用记事本编辑这个脚本,使用ren命令,形如; ren 这就是把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文件标题,并批量改名的程序或批处理命令。
如:“”文件中的第一行是“百度知道”,要求把“”改名成“百度知道.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:/ “□”代表一个空格 小tip:
可以先在记事本中写好,将其粘贴(注意:不能用Ctrl+V)到程序中。 例:将下列复制到中即可
tree D: /f>E:/
方法二:dir命令
dir c: >d:
将C盘根目录里的文件夹名和文件名都保存在D盘目录下的里,此文件可导入excel作进一步处理。dir可加参数 /w 等。
版权声明:本文标题:批量更名改名提取文件内容批处理多解十例 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1708472280h525348.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论