中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何删除文本中指定位置之后的文本
作者:
标题: 如何删除文本中指定位置之后的文本 上一主题 | 下一主题
dxvyi1
新手上路





积分 17
发帖 10
注册 2007-5-8
状态 离线
『楼 主』:  如何删除文本中指定位置之后的文本

在做封闭系统时遇到难题。有这样一个文本(假设文件名为1.reg):
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion]
"DevicePath"=hex(2):43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,57,00,53,\
  00,5c,00,69,00,6e,00,66,00,3b,00,63,00,3a,00,5c,00,64,00,72,00,69,00,76,00,\
  65,00,72,00,73,00,00,00

"MediaPathUnexpanded"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,\
  6f,00,6f,00,74,00,25,00,5c,00,4d,00,65,00,64,00,69,00,61,00,00,00
"SM_GamesName"="游戏"
"SM_ConfigureProgramsName"="设定程序访问和默认值"


我想只保留"MediaPathUnexpanded"=hex之前的内容,应该如何实现?最好不要用"MediaPathUnexpanded"=hex作为参照。


再如有个文本(假设文件名为2.txt):

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion
    devicepath        REG_EXPAND_SZ       
C:\WINDOWS\inf;c:\drivers

只保留“C:\WINDOWS\inf;c:\drivers”这段文字如何实现?

谢谢~~~

[ Last edited by dxvyi1 on 2007-5-8 at 02:21 PM ]

2007-5-8 14:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

具体情况具体的对待,没有什么通用的。
1、
@echo off
for /f "delims=: tokens=1*" %%a in ('findstr /n .* "1.reg"') do (
    if %%a equ 7 pause&goto :eof
    echo\%%b
)
2、
for /f "skip=1 tokens=3" %%a in (2.txt) do if not "%%a"=="" echo %%a
[ Last edited by lxmxn on 2007-5-8 at 02:39 PM ]

2007-5-8 14:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: