标题: [文本处理] 【已解决】请教BAT批量重命名 [打印本页]
作者: 1270697389 时间: 2013-11-17 17:30 标题: 【已解决】请教BAT批量重命名
本帖最后由 1270697389 于 2013-11-18 09:23 编辑
需要把:
0001_ffff.txt
0002_swrt.txt
ttsffg_swws.txt
等等……
改为把_后面的去掉
0001.txt
0002.txt
ttsffg.txt
谢谢!
我用的这个改_前面的行,_后面的不行- @echo off
- setlocal ENABLEDELAYEDEXPANSION
-
- for /f "delims=" %%a in ('dir /b /a *.txt') do (
- set file=%%a
- set file=!file:_*=!
- echo %%a --^> !file! >>Recovery.dic
-
- rename "%%a" "!file!"
- )
- pause
复制代码
作者: foxJL 时间: 2013-11-17 19:16
- @echo off
- for /f "tokens=1* delims=_" %%i in ('dir /b /a-d *_*.txt') do (ren,"%%i_%%j" %%i.txt)
- pause
复制代码
作者: 1270697389 时间: 2013-11-18 08:19
本帖最后由 1270697389 于 2013-11-18 08:37 编辑
foxJL 发表于 2013-11-17 19:16
假如aaa_bbb-ccc.txt这种文件名改为bbb.txt该怎么写?不是单个,是批量。
谢谢!
作者: DAIC 时间: 2013-11-18 08:53
回复 3# 1270697389 - @echo off
- for /f "tokens=1-3 delims=_-" %%i in ('dir /b /a-d *_*-*.txt') do (
- ren "%%i_%%j-%%k" "%%j.txt"
- )
复制代码
作者: 1270697389 时间: 2013-11-18 09:22
非常感谢两位老师!谢谢
作者: zhanglei1371 时间: 2013-11-18 17:17
可否解释下为何set file=!file:_*=!替换_到末尾的不行?谢谢
作者: foxJL 时间: 2013-11-18 17:42
回复 6# zhanglei1371
微软的设定就是这样的,无法解释,就像set/a不支持浮点运算一样,虽然我们也很想
看看set/?的帮助文档是怎样写的
环境变量替换已如下增强:
%PATH:str1=str2%
会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。
要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。
"str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的
开始到 str1 剩余部分第一次出现的地方,都一直保持相配。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |