标题: [文本处理] [已解决]批处理如何实现不规则文本定向提取? [打印本页]
作者: pZjVa0 时间: 2013-7-7 11:47 标题: [已解决]批处理如何实现不规则文本定向提取?
- PERFORMER "小虎队"
- TITLE "爱"
- REM DATE 1991
- REM DISCID BD0CF00E
- REM COMMENT "ExactAudioCopy v0.99pb5"
- FILE "CDImage.wav" WAVE
- TRACK 01 AUDIO
- TITLE "TEST"
复制代码
以上为被提取文本内容,在条件
1.行数不确定
2.上下文不确定
提取 "CDImage.wav" 位置的关键词(不包括引号)
原本在论坛各位大大的帮助下使用下面代码可获得指定结果- @echo off
- for /f tokens^=2delims^=^" %%c in ('findstr ^^^""" CDImage.cue^|findstr /n .^|findstr /b 4:') do set c=%%c
- echo %c%
- pause
复制代码
以""(引号)为分隔符,截取第四个结果。
=================================================
现在新的问题是除了
1.上下文
2.行数不确定
加上 3.以引号为分隔符的结果数
同时也不确定.
单纯通过FILE "CDImage.wav" WAVE 这句话前后文来提取应该如何实现,谢谢。
作者: terse 时间: 2013-7-7 12:14
这样试呢?- findstr /ix "FILE \"CDImage.wav\" WAVE" CDImage.cue
复制代码
作者: pZjVa0 时间: 2013-7-7 13:59
回复 2# terse
但 CDImage.wav有可能是任何关键词,不一定是CDImage.wav
作者: terse 时间: 2013-7-7 14:30
回复 3# pZjVa0
前后的 FILE 和 WAVE 能确定吗- findstr /i "^FILE.*WAVE$" x.cue
复制代码
作者: pZjVa0 时间: 2013-7-7 15:48
回复 4# terse
能。复制代码
是确定的
作者: pZjVa0 时间: 2013-7-7 16:15
回复 4# terse
我还有一个疑问是能不能根据一楼的代码修改成只提取CDImage.wav(不带引号)这个关键词。
作者: pZjVa0 时间: 2013-7-7 16:17
- @echo off
- for /f tokens^=2delims^=^" %%c in ('findstr /i "^FILE.*WAVE$" CDImage.cue') do set c=%%c
- echo %c%
- pause
复制代码
最终代码。
作者: pZjVa0 时间: 2013-7-7 16:18
回复 4# terse
非常感谢terse
作者: wskwfkbdn 时间: 2013-7-14 00:45
本帖最后由 wskwfkbdn 于 2013-7-14 16:03 编辑
回复 8# pZjVa0
@echo off
for /f "tokens=2" %%i in ('type 2.txt^|findstr /i ".wav"') do echo %%~i
pause
修改:
@echo off
for /f "tokens=1*" %%i in ('type 2.txt^|findstr /i ".wav"') do set xiao=%%j
for /f "delims=" %%a in ("%xiao:~0,-5%") do echo %%~a
pause
作者: pZjVa0 时间: 2013-7-14 11:22
回复 9# wskwfkbdn
这个代码在遇到双引号中间存在空格的关键词会失效,例如复制代码
非常感谢你的分享。
作者: wskwfkbdn 时间: 2013-7-14 16:03
本帖最后由 wskwfkbdn 于 2013-7-16 10:45 编辑
回复 10# pZjVa0 - @echo off
- for /f "tokens=1*" %%i in ('type 2.txt^|findstr /i ".wav"') do set xiao=%%j
- for /f "delims=" %%a in ("%xiao:~0,-5%") do echo %%~a
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |