找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26503|回复: 6

[文本处理] 【已解决】请教BAT批量重命名

[复制链接]
发表于 2013-11-17 17:30:29 | 显示全部楼层 |阅读模式
本帖最后由 1270697389 于 2013-11-18 09:23 编辑

需要把:
0001_ffff.txt
0002_swrt.txt
ttsffg_swws.txt
等等……
改为把_后面的去掉
0001.txt
0002.txt
ttsffg.txt
谢谢!
我用的这个改_前面的行,_后面的不行
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION

  3. for /f "delims=" %%a in ('dir /b /a *.txt') do (
  4.         set file=%%a
  5.         set file=!file:_*=!
  6.          echo %%a --^> !file! >>Recovery.dic
  7.         
  8.         rename "%%a" "!file!"
  9. )
  10. pause
复制代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-11-17 19:16:20 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=1* delims=_" %%i in ('dir /b /a-d *_*.txt') do (ren,"%%i_%%j" %%i.txt)
  3. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
1270697389 + 1 完美

查看全部评分

 楼主| 发表于 2013-11-18 08:19:20 | 显示全部楼层
本帖最后由 1270697389 于 2013-11-18 08:37 编辑
foxJL 发表于 2013-11-17 19:16



    假如aaa_bbb-ccc.txt这种文件名改为bbb.txt该怎么写?不是单个,是批量。
谢谢!
发表于 2013-11-18 08:53:04 | 显示全部楼层
回复 3# 1270697389
  1. @echo off
  2. for /f "tokens=1-3 delims=_-" %%i in ('dir /b /a-d *_*-*.txt') do (
  3.     ren "%%i_%%j-%%k" "%%j.txt"
  4. )
复制代码

评分

参与人数 1技术 +1 收起 理由
1270697389 + 1 佩服

查看全部评分

 楼主| 发表于 2013-11-18 09:22:40 | 显示全部楼层
非常感谢两位老师!谢谢
发表于 2013-11-18 17:17:40 | 显示全部楼层
可否解释下为何set file=!file:_*=!替换_到末尾的不行?谢谢
发表于 2013-11-18 17:42:39 | 显示全部楼层
回复 6# zhanglei1371

微软的设定就是这样的,无法解释,就像set/a不支持浮点运算一样,虽然我们也很想
看看set/?的帮助文档是怎样写的

环境变量替换已如下增强:

    %PATH:str1=str2%

会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。
要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。
"str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的
开始到 str1 剩余部分第一次出现的地方,都一直保持相配。

评分

参与人数 1技术 +1 收起 理由
zhanglei1371 + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 21:10 , Processed in 0.033943 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表