中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 如何才能 用FOR 把H:提出来 上一主题 | 下一主题
ww111222
中级用户




积分 354
发帖 83
注册 2003-3-23
状态 离线
『楼 主』:  如何才能 用FOR 把H:提出来





这是ghost11 生成的 txt文件里的内容

想用for 把 Desc 后面的 H: 提出来 这是 第1硬盘的最后一个分区

Desc     H: 1.4: [1KEYRESTORE]

看了 FOR 的教程,还是搞不明白,能否请教一下


  我借鉴的 BAT代码 是把1:4给找出来了

type ghost.bat

@Echo off
ghost -dd >NUL
set p=1
call FindLast.bat 1 2 3 4 5 6 7 8 9 10 11 12 13 14
echo LastPartition:%LastP%
echo.
echo Edit GHOST command at here ...
pause

type findlast.bat

:1
FIND /i "%p%:%1" GHSTSTAT.TXT >NUL
if errorlevel 1 goto 2
set LastP=%p%:%1
Shift
goto 1

:2
del GHSTSTAT.TXT

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




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

要提取那个 H: 一行,看看它那一行和别的行有什么区别和特征,再来对症下药。

我找不到它和别的行有什么区别,貌似 [1KEYRESTORE] 是个标志?

2007-5-13 19:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 3 楼』:  

@echo off
setlocal enabledelayedexpansion
set LastP=1.4
for /f "tokens=2 delims=, " %%a in ('findstr "\<Desc.*%LastP%\>" 1.txt') do set lp=%%a
echo 最后盘符%lp%
pause
这样行吗?
你可以把你上面的P处理中:
FIND /i "%p%:%1" GHSTSTAT.TXT >NUL改为:
FIND /i "%p%.%1" GHSTSTAT.TXT >NUL
那样要是可行的话 我给的set LastP=1.4就可以不要

[ Last edited by terse on 2007-5-13 at 08:26 PM ]

2007-5-13 20:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ww111222
中级用户




积分 354
发帖 83
注册 2003-3-23
状态 离线
『第 4 楼』:  

谢谢,两位 指点,

1.4是第一硬盘的第4个分区, 所以不能指定是1.4

我想唯一的 条件是

Desc      *: 1.×:         

   这个× 是最大的 就是了

2007-5-14 01:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
TBAGE
初级用户





积分 39
发帖 20
注册 2007-5-14
状态 离线
『第 5 楼』:  

学习。。。。。。。。。。。。。。。。。。。。。。

2007-5-14 02:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ttyp
初级用户





积分 180
发帖 84
注册 2006-9-7
状态 离线
『第 6 楼』:  

@echo off

findstr /i "desc [a-zA-Z]: 1\.\d.*" a.txt>>b.txt
for /f "tokens=3 delims= " %%a in (b.txt) do (       
        echo %%a>>c.txt
)
sort /r c.txt>d.txt
for /f %%i in (d.txt) do (
        call :findlast %%i
        goto :end
)


:findlast
for /f "tokens=2 delims= " %%x in ('findstr "%1" b.txt') do echo %%x
goto :eof

:end
@del b.txt
@del c.txt
@del d.txt

2007-5-14 09:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zouzhxi
中级用户

蝴蝶之吻


积分 430
发帖 177
注册 2006-9-20
来自 广东深圳
状态 离线
『第 7 楼』:  

如何将

  Quote:
    K810-019       <00>  UNIQUE      Registered

里边的k810-019提取出来...????



Butterfly Kiss Blog
计算机DIY联盟论坛
2007-5-14 09:55
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (234693993)  编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 8 楼』:  

可以通过比较大小提出来。。。

path h:
path d:

通过比较 h 和 d 的大小就可以了。



知,不觉多。不知,乃求知
2007-5-14 11:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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



  Quote:
Originally posted by zouzhxi at 2007-5-14 09:55:
如何将里边的k810-019提取出来...????

新问题请重新开帖提出。

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

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


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



论坛跳转: