=!行不通,好像这种方法是可以用通配符的,但是为什么这样写不行呢?要怎么写代码才简洁点.
作者: tmplinshi 时间: 2012-11-8 21:11
本帖最后由 tmplinshi 于 2012-11-8 21:21 编辑
- ren2 -f "\[.*\](.*)\[.*\](\.txt)" "$1$2"
复制代码
ren2.exe 下载地址: http://www.lomont.org/Software/Utilities/Ren2/ren2.exe
作者: kay1101 时间: 2012-11-8 21:50
回复 2# tmplinshi
多谢版主回复了,但是对于很多机器都是没ren2的,怎么办,治标不治本啊...
作者: apang 时间: 2012-11-8 22:24
vbs试试?- Set FSO = CreateObject("Scripting.FileSystemObject")
- For Each File In FSO.GetFolder(".").Files
- Name = File.Name
- Set Re = New RegExp
- Re.Pattern = "(^\[.*\])(.*)(\[.*\])(\.txt$)"
- Re.Global = False
- Re.IgnoreCase = True
- For Each Match in Re.Execute(Name)
- File.Name = Re.Replace(Name,"$2$4")
- Next
- Next
复制代码
作者: Bearxy 时间: 2012-11-9 15:14
- @echo off
- for %%a in (*.txt) do (
- echo.%%a>temp.txt
- for /f "tokens=2 delims=[]" %%b in (temp.txt) do (
- ren %%a %%b.txt
- ))
- del temp.txt
复制代码
作者: Bearxy 时间: 2012-11-9 15:18
为什么一定要纠结通配符,直接delims=[]取中间的值不就好了。
文件中间的值不刚好是word1 word2 word3么。。。
不理解。
作者: kay1101 时间: 2012-11-9 15:55
本帖最后由 kay1101 于 2012-11-9 15:57 编辑
回复 5# Bearxy
傻了。。。多谢指教,一定要生成临时文件的?
作者: kay1101 时间: 2012-11-9 15:58
回复 4# apang
恩,可以用的
作者: kay1101 时间: 2012-11-9 16:03
回复 5# Bearxy
这样好像就不用生成临时文件了,还是多谢提醒~- @echo off
- for %%a in (*.txt) do (
- for /f "tokens=2 delims=[]" %%b in ("%%a") do (
- ren %%a %%b.txt
- ))
复制代码
作者: Bearxy 时间: 2012-11-9 17:31
回复 9# kay1101
呵呵,有时候我也一样,转进去就出不来了。哈哈
作者: Batcher 时间: 2012-11-11 00:03
回复 5# Bearxy
尽量避免产生临时文件吧
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |