标题: [文本处理] 【已解决】批处理如何删除文件名中第一个指定分隔符前的字符串? [打印本页]
作者: wzf1024 时间: 2016-3-2 14:45 标题: 【已解决】批处理如何删除文件名中第一个指定分隔符前的字符串?
本帖最后由 wzf1024 于 2016-3-6 19:58 编辑
如题,有很多txt,分隔符"."重复出现在文件名中,需要删除第一个"."前的字符串,如何实现,如:
1,693.一男性患者心动过速突然发作,心率160次/min,节律规则,心电图检查为∶QRS波群增宽,时限为0.12s,心律规则。可能的诊断是.txt
1,707.急性心肌梗死患者,疑有早期心源性休克末梢循环改变,血压12/9.3kPa(90/70mmHg),尿比重1.016,中心静脉压13cmH2O.txt
……
操作后成为:
一男性患者心动过速突然发作,心率160次/min,节律规则,心电图检查为∶QRS波群增宽,时限为0.12s,心律规则。可能的诊断是.txt
急性心肌梗死患者,疑有早期心源性休克末梢循环改变,血压12/9.3kPa(90/70mmHg),尿比重1.016,中心静脉压13cmH2O.txt
--------------
大侠帮忙!
作者: ivor 时间: 2016-3-2 15:14
回复 1# wzf1024 - @echo off
- for /f %%a in ('dir /b /a-d *.txt') do (
- for /f "tokens=1,* delims=." %%b in (%%a) do (
- echo %%c
-
- )
- )>new_%%a
复制代码
作者: wzf1024 时间: 2016-3-2 16:08
回复 2# ivor
ivor大侠, 没有达到目的,文件名开头反而加上了NEW_
作者: ivor 时间: 2016-3-2 16:20
回复 3# wzf1024
什么效果没达到
作者: wzf1024 时间: 2016-3-2 17:16
回复 4# ivor
1,707.急性心肌梗死患者,疑有早期心源性休克末梢循环改变,血压12/9.3kPa(90/70mmHg),尿比重1.016,中心静脉压13cmH2O.txt
……
操作后成为:
new_1,707.急性心肌梗死患者,疑有早期心源性休克末梢循环改变,血压12/9.3kPa(90/70mmHg),尿比重1.016,中心静脉压13cmH2O.txt
作者: bailong360 时间: 2016-3-2 17:52
复制代码
作者: wzf1024 时间: 2016-3-2 19:17
回复 6# bailong360
老大,这个要用那个第三方软件?
作者: ivor 时间: 2016-3-2 19:59
- #!/usr/bin/python3.5
- import os, re
-
- for txt_file in os.popen('dir /b /a-d *.txt'):
- txt_file = txt_file.strip('\n')
- write_file = open('new_%s' % txt_file, 'w')
- with open(txt_file,'r') as file:
- for line in file:
- result = re.findall('\.(.*)',line)[0]
- print(result,file=write_file)
复制代码
作者: gawk 时间: 2016-3-2 20:36
回复 7# wzf1024
Ren2.exe
作者: wzf1024 时间: 2016-3-6 18:58
本帖最后由 wzf1024 于 2016-3-6 18:59 编辑
回复 9# gawk
这个会删掉文件名,只剩下扩展名,如:
12.5s.txt
会变成:
txt
作者: wzf1024 时间: 2016-3-6 19:02
回复 8# ivor
大大,我是菜鸟,这个怎么用?
作者: ivor 时间: 2016-3-6 19:27
本帖最后由 ivor 于 2016-3-6 19:29 编辑
回复 11# wzf1024
安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行,
新的文本是new_开头,方便查看
作者: pcl_test 时间: 2016-3-6 19:30
改下2楼- for /f "tokens=1* delims=." %%a in ('dir /b /a-d *.txt^|findstr "[^\.]\..*\.[^\.]*"') do ren "%%a.%%b" "%%b"
复制代码
作者: WHY 时间: 2016-3-6 21:02
win7 及以上系统可以试下- PowerShell -c "dir *.*.txt|ren -NewName {$_.name -replace '.+?\.(.+)$', '$1'}"
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |