Board logo

标题: [文件操作] 批处理如何删除/去掉文件名中的数字 [打印本页]

作者: flywvs    时间: 2012-12-12 17:15     标题: 批处理如何删除/去掉文件名中的数字

本帖最后由 pcl_test 于 2016-8-13 22:27 编辑

如题求助,如何批处理把文件名中的数字去掉
我的文件名是:09001014 电话撒地方-说对方是否.doc
修改成
电话撒地方-说对方是否.doc

数字并不固定,希望各位达人大哥能帮助小弟一下,这里实在太感谢了。
作者: BAT-VBS    时间: 2012-12-12 18:57

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.doc) do (
  4.     set "str=%%a"
  5.     set "str=!str: =!"
  6.     for /l %%b in (0,1,9) do (
  7.         set str=!str:%%b=!
  8.     )
  9.     ren "%%a" "!str!"
  10. )
复制代码

作者: flywvs    时间: 2012-12-12 20:06

回复 2# BAT-VBS


   实在感谢你了,太好用了,省去了很多麻烦,真心谢谢啊
作者: 悬崖之树    时间: 2012-12-12 22:03

  1. @echo off & setlocal enabledelayedexpansion
  2. for %%i in (*.doc) do (
  3.    for /f "tokens=1,*" %%a in ("%%i") do (
  4.       ren "%%i" "%%b" 2>nul
  5.    )
  6. )
  7. pause
复制代码

作者: hlzj88    时间: 2012-12-13 13:16

http://www.bathome.net/thread-20828-1-1.html


这里 我的回复
作者: pcl_test    时间: 2016-8-13 22:50

  1. //&cls&dir /a-d/b *.doc|cscript -nologo -e:jscript "%~f0"&pause&exit
  2. var fso = new ActiveXObject('Scripting.FileSystemObject');
  3. while(!WSH.StdIn.AtEndOfStream){
  4.     var line = WSH.StdIn.ReadLine();
  5.     var file = fso.GetFile(line);
  6.     var name = fso.GetBaseName(line).replace(/\d+/g, '').replace(/^\s+|\s+$/, '');
  7.     var ext = '.'+fso.GetExtensionName(line);
  8.     if(name&&!fso.FileExists(file.ParentFolder+'\\'+name+ext))file.Name=name+ext;
  9. }
复制代码

作者: Rocmind    时间: 2017-8-17 15:38

回复 6# pcl_test


    版主的果然不一样,最上面的一个,实际测试,连扩展名中的数字也删除了——mp3文件
作者: Nsqs    时间: 2017-8-17 15:54

回复 7# Rocmind
  1. powershell -c "(dir -file '*.mp3')|foreach{$r=($_.BaseName -replace '\d+')+$_.Extension;ren $_ $r}"
复制代码
这样更简洁




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2