标题: [文件操作] [已解决]批处理如何提取文本中以指定字符/字符串分割的前两列内容 [打印本页]
作者: shimuren 时间: 2015-9-18 17:37 标题: [已解决]批处理如何提取文本中以指定字符/字符串分割的前两列内容
本帖最后由 pcl_test 于 2016-8-6 09:46 编辑
bat提取文本前两段
需求:提取指定格式文本前两段
需要处理文本格式:
3353596496----jruecqi18----母亲姓名----gluc----父亲姓名----gyyyv----配偶姓名----vsuzaz
662758143140----jruoewpf988----母亲姓名----hiyo----父亲姓名----wdupb----配偶姓名----kxqqhy
3142554166----vyhkcy2887082----母亲姓名----adji----父亲姓名----tntdx----配偶姓名----dscjxk
处理后的结果:
3353596496----jruecqi18
662758143140----jruoewpf988
3142554166----vyhkcy2887082
作者: 回家路上 时间: 2015-9-18 20:33
(1)写需求不要惜墨如金,本来问题很简单,但不说清楚很耽误事。
(2)能上文本的时候不要发图片,图片占空间大,并且不方便测试(帮助的人要自己手打?)
(3)需求要的结果和测试样本同样重要,不说清结果,样本整再详细也白扯。
作者: shimuren 时间: 2015-9-18 20:47
回复 2# 回家路上
嗯 谢谢指导
作者: 回家路上 时间: 2015-9-18 21:44
本帖最后由 回家路上 于 2015-9-18 21:55 编辑
如果会常用批处理,建议在论坛里学一下基础会方便很多- @if(0)==(0) echo off&type "a.txt"|cscript -nologo -e:jscript "%~f0">b.txt&pause&exit /b&@end
-
- WScript.StdIn.ReadAll().replace(/([^-]+-+[^-]+).*(?:\r\n|$)/g,function($0,$1){
- WSH.Echo($1);
- });
复制代码
- @echo off
- (for /f "tokens=1,2 delims=-" %%i in (a.txt) do echo;%%i----%%j)>b.txt
- pause & exit /b
复制代码
作者: shimuren 时间: 2015-9-20 00:19
回复 4# 回家路上
怎么实现拖拽执行呢 折腾一天还是不行
作者: flyinnet9 时间: 2015-9-20 01:58
本帖最后由 flyinnet9 于 2015-9-20 02:00 编辑
回复 5# shimuren
借“回家路上”的代码- @echo off
- set /p str=请拖入需要处理的文件,然后回车:
- (for /f "tokens=1,2 delims=-" %%i in (%str%) do echo;%%i----%%j)>b.txt
- pause & exit /b
复制代码
作者: shimuren 时间: 2015-9-20 02:24
回复 6# flyinnet9
保存的文件如何已 [拖入的文件文件名+后缀].txt 保存呢,并与拖入的文件处在同一个目录,我这边保存老是与bat一个目录
作者: flyinnet9 时间: 2015-9-20 11:21
回复 7# shimuren - @echo off
- set /p str=请拖入需要处理的文件,然后回车:
- for /f "delims=" %%a in ("%str%") do (
- set p=%%~pa
- set n=%%~na
- )
- (for /f "tokens=1,2 delims=-" %%i in (%str%) do echo;%%i----%%j)>"%p%%n%_b.txt"
- pause & exit /b
复制代码
作者: shimuren 时间: 2015-9-20 12:38
回复 8# flyinnet9
谢谢大神
作者: shimuren 时间: 2015-9-20 16:59
回复 8# flyinnet9
要是bat放在D盘,txt文件放在桌面,执行bat后无法导出文件,或者导出文件为空白。
这个要修改?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |