如何批量为文件改名(已解决)
本帖最后由 32714107 于 2013-4-29 12:16 编辑电脑上有很多excel文件,如下图
想把所有的名字如“家庭承包方式土地合同---(王连明)”改为“1616030600200058”,“16160306002000**”为连续的,从1到120
感觉应该用正则吧,可我不太懂,请问怎么改啊?谢谢 #Include <File.au3>
Local $sDir = @ScriptDir
Local $aFile = _FileListToArray($sDir, '*1616030600200*', 1)
Local $sNew, $i
For $i = 1 To $aFile
$sNew = StringRegExpReplace($aFile[$i], '.*?(1616030600200\d+).*', '$1.XLS')
FileMove($aFile[$i], $sNew)
Next 这个我觉得直接用档案名称修改软体直接作比较快。
现在软体都很强大,可以设定条件字串替换的。 这种情况下 我比较喜欢用批处理,挺快的 回复 4# shqf
想学习一下批处理的代码 谢谢afan老师,也谢谢众多老前辈,让我学到了很多东西! 运行程序,成功!afan老师真是太厉害了,膜拜中。。。。。。 本帖最后由 shqf 于 2012-11-23 09:44 编辑
也交流一下我常在用的批处理方法吧(放在同一个目录下运行)@echo off
setlocal enabledelayedexpansion
for /f "delims=\" %%a in ('dir /b *.xls ') do (
set sfname=%%a
set tfname=!sfname:~18,16!
ren "%%a" !tfname!.xls
)
dir /b *.xls
pause 回复 8# shqf
批处理不会呀,在哪里能学到?
afan 发表于 2012-11-22 11:23 http://www.autoitx.com/images/common/back.gif
版主的正则太强了,学习了,谢谢! 学习学习学习学习
页:
[1]