标题: [文件操作] 批处理如何批量删除文件夹名中特定字符串前的所有字符? [打印本页]
作者: h8063315 时间: 2016-5-30 02:07 标题: 批处理如何批量删除文件夹名中特定字符串前的所有字符?
本帖最后由 pcl_test 于 2016-5-31 20:28 编辑
我有一大批的文件夹,是文件夹,不是文件,文件夹需要改名字,因为原来的名字太才了
如
代理价 140∕双 36-44 耐克王土豪金(1577)
代理价 120∕双 36-40 MAX 87 帆白棕褐色(1405)
代理价 120∕双 36-40 MAX 87 深兰白金(1468)
代理价 120∕双 36-40 MAX 87 深宝兰钻石兰超级粉顶峰白(1458)
代理价 120∕双 36-40 MAX 87 灰紫白粉红(1437)
代理价 120∕双 36-40 MAX 87 玫红橙色(1451)
代理价 120∕双 36-40 MAX 87 白铁矿色碧绿(1389)
现在我想批量处理,只保留后面的编号
(1577)
(1405)
(1468)
(1458)
(1437)
(1451)
(1389)
这样,就是保留后6位字符
求帮助
作者: heyoug 时间: 2016-5-30 13:47
如果用括号中间的4位数字做文件名行,加括号不好弄...
作者: pcl_test 时间: 2016-5-30 20:58
举个栗子- @echo off
- for /f "tokens=1*delims=(" %%a in ('more +5 "%~f0"') do (
- echo;ren "%%a(%%b" "(%%b"
- )
- pause&exit
- 代理价 140∕双 36-44 耐克王土豪金(1577)
- 代理价 120∕双 36-40 MAX 87 帆白棕褐色(1405)
复制代码
作者: pcl_test 时间: 2016-5-30 21:00
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('more +6 "%~f0"') do (
- set "str=%%a"
- echo;ren "%%a" "!str:~-6!"
- )
- pause&exit
- 代理价 140∕双 36-44 耐克王土豪金(1577)
- 代理价 120∕双 36-40 MAX 87 帆白棕褐色(1405)
复制代码
作者: chenkangone 时间: 2016-5-31 15:02
@echo off
for /R d:\leanbat\test %%a in (.) do (
for /f "delims=( tokens=2" %%i in ("%%~na") do (ren %%~dpa"%%~na" ^(%%i)
)
作者: chenkangone 时间: 2016-5-31 15:03
最近学了两天bat,不知道有没有更简便的方法
作者: gawk 时间: 2016-6-1 22:29
回复 6# chenkangone
“保留后6位字符”是set命令截取字符串的应用场景之一,可以参考4楼代码的第四行。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |