标题: [文件操作] 批处理如何删除/去掉文件名中的数字 [打印本页]
作者: flywvs 时间: 2012-12-12 17:15 标题: 批处理如何删除/去掉文件名中的数字
本帖最后由 pcl_test 于 2016-8-13 22:27 编辑
如题求助,如何批处理把文件名中的数字去掉
我的文件名是:09001014 电话撒地方-说对方是否.doc
修改成
电话撒地方-说对方是否.doc
数字并不固定,希望各位达人大哥能帮助小弟一下,这里实在太感谢了。
作者: BAT-VBS 时间: 2012-12-12 18:57
- @echo off
- setlocal enabledelayedexpansion
- for %%a in (*.doc) do (
- set "str=%%a"
- set "str=!str: =!"
- for /l %%b in (0,1,9) do (
- set str=!str:%%b=!
- )
- ren "%%a" "!str!"
- )
复制代码
作者: flywvs 时间: 2012-12-12 20:06
回复 2# BAT-VBS
实在感谢你了,太好用了,省去了很多麻烦,真心谢谢啊
作者: 悬崖之树 时间: 2012-12-12 22:03
- @echo off & setlocal enabledelayedexpansion
- for %%i in (*.doc) do (
- for /f "tokens=1,*" %%a in ("%%i") do (
- ren "%%i" "%%b" 2>nul
- )
- )
- pause
复制代码
作者: hlzj88 时间: 2012-12-13 13:16
http://www.bathome.net/thread-20828-1-1.html
这里 我的回复
作者: pcl_test 时间: 2016-8-13 22:50
- //&cls&dir /a-d/b *.doc|cscript -nologo -e:jscript "%~f0"&pause&exit
- var fso = new ActiveXObject('Scripting.FileSystemObject');
- while(!WSH.StdIn.AtEndOfStream){
- var line = WSH.StdIn.ReadLine();
- var file = fso.GetFile(line);
- var name = fso.GetBaseName(line).replace(/\d+/g, '').replace(/^\s+|\s+$/, '');
- var ext = '.'+fso.GetExtensionName(line);
- if(name&&!fso.FileExists(file.ParentFolder+'\\'+name+ext))file.Name=name+ext;
- }
复制代码
作者: Rocmind 时间: 2017-8-17 15:38
回复 6# pcl_test
版主的果然不一样,最上面的一个,实际测试,连扩展名中的数字也删除了——mp3文件
作者: Nsqs 时间: 2017-8-17 15:54
回复 7# Rocmind - powershell -c "(dir -file '*.mp3')|foreach{$r=($_.BaseName -replace '\d+')+$_.Extension;ren $_ $r}"
复制代码
这样更简洁
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |