无忧启动论坛

标题: 初试gawk,发现太强大了。确定硬盘最后分区,一行搞定。 [打印本页]

作者: lianjiang    时间: 2008-1-17 19:00
标题: 初试gawk,发现太强大了。确定硬盘最后分区,一行搞定。
初试gawk,发现太强大了。确定硬盘最后分区,一行搞定。
举例:
硬盘分区信息为:
No.  Dr Tag FileSystem     Volume      Act StartPos   Sectors    MBytes MB_Free
1:1  C: Pri HPFS/NTFS      winxp       Yes 63         20482812   10001  6513
1:2     Pri Hide_HPFS/NTFS                 20482875   18442620   9005   
1:3  D: Log HPFS/NTFS      program         38925558   20482812   10001  7996
1:4  E: Log HPFS/NTFS      DATA            59408433   30732282   15005  10982
1:5  F: Log Win95_FAT32    APPZ            90140778   61448562   30004  13328
1:6  G: Log HPFS/NTFS      dv              151589403  82847142   40452  29750

使用gawk,只需要一行。

snap079.jpg (36.21 KB, 下载次数: 115)

snap079.jpg

作者: xiaoy    时间: 2008-1-17 19:13
下载          附件

[ 本帖最后由 xiaoy 于 2008-1-17 07:19 PM 编辑 ]

gawk_3.1.3.rar

79.03 KB, 下载次数: 867, 下载积分: 无忧币 -2


作者: wawakuliao    时间: 2008-1-17 19:26
我是菜鸟

看不懂
作者: lianjiang    时间: 2008-1-17 19:29
我也是菜鸟,才搞出来这个。
作者: barton    时间: 2008-1-17 19:44
此处gawk.exe只是用来处理txt文件里的内容的

print last


o(∩_∩)o...
作者: lianjiang    时间: 2008-1-17 19:52
是的,批处理要用最后分区变量还得加一句才行。
作者: baiying713    时间: 2008-1-17 21:14
那是撒意思 我门不知道 说明白写么
作者: zts59    时间: 2008-1-17 23:00
是不是用它来取最后一行的分区数据呢?
作者: hwb9091    时间: 2008-1-17 23:42
我现在都是用系统盘直接安装来分区!
作者: lianjiang    时间: 2008-1-18 07:43
原帖由 zts59 于 2008-1-17 11:00 PM 发表
是不是用它来取最后一行的分区数据呢?

是的。
根据其他工具获取的硬盘信息,取得最后的分区号,以用于一键类工具。
作者: lianjiang    时间: 2008-1-18 07:45
原帖由 hwb9091 于 2008-1-17 11:42 PM 发表
我现在都是用系统盘直接安装来分区!

与你的是两码事请,呵呵。
主要用于一键类工具的备份与恢复。
作者: lianjiang    时间: 2008-1-18 07:45
原帖由 baiying713 于 2008-1-17 09:14 PM 发表
那是撒意思 我门不知道 说明白写么

根据其他工具获取的硬盘信息,取得最后的分区号,以用于一键类工具的备份与恢复。
作者: semiuel    时间: 2008-1-18 15:39
原帖由 lianjiang 于 2008-1-18 07:45 AM 发表

根据其他工具获取的硬盘信息,取得最后的分区号,以用于一键类工具的备份与恢复。


也就是说以后不再需要"IBMSERVICE"了?
作者: willsion    时间: 2008-1-18 17:50
这是32位版本吗?有没有16位dos下的?
作者: barton    时间: 2008-1-18 20:56
这个就是16位的版本吧、、、


其他一些GNU工具for windows
http://unxutils.sourceforge.net/UnxUtils.zip

\usr\local\wbin
作者: lianjiang    时间: 2008-1-18 21:09
原帖由 barton 于 2008-1-18 08:56 PM 发表
这个就是16位的版本吧、、、


其他一些GNU工具for windows
http://unxutils.sourceforge.net/UnxUtils.zip

\usr\local\wbin

GNU工具for windows。
呵呵。

dos版本很难找。网上找了半天,全是windows下用的,不得已,又来翻以前刻录的光盘,好不容易找到了一个dos下用的。已包括在最新版gghost的img中。
作者: barton    时间: 2008-1-18 21:14
呵呵,我搜索DOS下的gawk

只找到for windows的


确实比较难找
作者: xiaoy    时间: 2008-1-25 12:16
我这样用的,GHOST11  但有时GHOST报错,大多时候又能备份   不明白怎么回事 ? 大家看看!
  1. @echo off
  2. @ECHO OFF
  3. Break=OFF
  4. set EXPAND=YES
  5. SET DIRCMD=/O:N
  6. SET RAMDRIVE=X
  7. XMSDSK 8192 X: /y
  8. SET TEMP=%RAMDRIVE%:\
  9. SET TMP=%RAMDRIVE%:\
  10. Path=a:\;%RAMDRIVE%:\
  11. mouse.com >nul
  12. smartdrv.exe >nul
  13. cls
  14. echo Please Wait a Moment.
  15. copy *.* x:\ >nul
  16. x: >nul
  17. cd\ >nul

  18. hpa -u -c >nul
  19. dpit 1 /find:all /ghost /y>hdd.txt
  20. awk.exe "$1 ~ /:/ {last=$1} END {print last}" hdd.txt >last.txt
  21. strings bak=read last.txt,1
  22. ghost -pwd=xyxy -clone,mode=pdump,src=1:1,dst=%bak%\system.bak -sure -nousb -noide -no1394 -z1  -fx
复制代码

[ 本帖最后由 xiaoy 于 2008-1-25 12:25 PM 编辑 ]

xy.rar

57.11 KB, 下载次数: 132, 下载积分: 无忧币 -2


作者: lianjiang    时间: 2008-1-25 12:55
从批处理看,没发现什么问题。
有时能用,有时出错,是指在同一台机上,还是在不同机上?
出错时的错误信息是什么?应输出错误文件。
同时,要确定出错原因,建议还是自己多测试。
测试时,在适当位置设置echo,pause,或echo到文件,比较出错时的参数与正常时有无差别。

另,1,似乎不需要运行smartdrv。
    2,dst=%bak%\system.bak改成dst=%bak%:\system.bak,未确认是否会好些。
作者: xiaoy    时间: 2008-1-25 13:53
错误是在同一台电脑产生的,  今天试了两台,第一次用的时候都出现了问题,可以后再用都能正常备份, 我觉得很有可以是HPA的问题,不想解决了。

smartdrv  确实对GHOST没有帮助
第二点,加上那个冒号可能会有问题,   1:5:\system.bak 这样的应该不正确吧
作者: lianjiang    时间: 2008-1-25 14:29
1:5:\system.bak 是正确的。
作者: 鬼眼狂ZERO    时间: 2008-1-25 15:32
不是很明白,是甚么意思·······················
作者: lianjiang    时间: 2009-6-14 08:09
原帖由 zhxy9804 于 2009-6-14 07:41 发表

反正1:4\测试通过


1.4:\
1:4:\
1:4\
三种表示方式都可以。

建议使用1:4\格式。
作者: lianjiang    时间: 2009-6-14 09:42
原帖由 zhxy9804 于 2009-6-14 09:08 发表
omnifs得用1.4:\
上面说的其他两种没测试,说明手册上的写的不对。
还有两个问题要请教。
1.ghost11系列如何不用外部工具实现定位到最后一个分区。
ghost8.3我看别人写的可以这样子:

ghost83 -dd >NUL
...


1,你需要根据v11的检测信息的特征确定相应的特征字符。
我都是用omnifs,处理更简单,显示的信息也直观。
2,没见到过此类提示。可根据具体信息到官网搜索看看。
作者: lianjiang    时间: 2009-6-14 12:33
原帖由 zhxy9804 于 2009-6-14 09:08 发表
ghost83 -dd >NUL
  set p=1
  call flast.bat 1 2 3 4 5 6 7 8 9 10 11 12 13 14
  GHOST83.EXE -CLONE,MODE=PDUMP,SRC=1:1,DST=%LastP%\

flast.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

...


从字符处理方面看,11.02用应该也是没问题的。

这段批处理,装机商用没什么问题。不太适合个人机子用。
作者: lianjiang    时间: 2009-6-15 07:31
原帖由 zhxy9804 于 2009-6-15 07:29 发表

恩,就是单硬盘吗,多硬盘的情况很复杂,比如硬盘接口顺序变了,bios恢复默认设置了,都会影响,不去考虑了,费脑筋。


不是硬盘数的问题,而是系统装在哪里问题。呵呵。
作者: lianjiang    时间: 2009-6-15 08:11
原帖由 zhxy9804 于 2009-6-15 08:02 发表
说的是,你的软件考虑的很周全,打开你的软件,剽窃点代码自己用用,不介意吧


我写得是乱七八糟的,能看懂的就用吧,呵呵。
作者: CWD    时间: 2009-6-17 01:22
原帖由 zhxy9804 于 2009-6-14 09:08 发表
...
ghost83 -dd >NUL
  set p=1
  call flast.bat 1 2 3 4 5 6 7 8 9 10 11 12 13 14
  GHOST83.EXE -CLONE,MODE=PDUMP,SRC=1:1,DST=%LastP%\

flast.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
...

这段批在GHOST v11 版后不行了。。。
在DOS板块得过 lianjiang & 巫山云 两位仁兄的指导,之后仔细学习了下GHSTSTAT.TXT 文件,改改如下:

  1. 前面判断硬盘号及主激活分区部分略。。。

  2. ghost.exe -dd >nul
  3. echo :_1>%temp%\findlast.bat
  4. echo find /i "%hd_id%.%%1:" ghststat.txt>>%temp%\findlast.bat
  5. echo if errorlevel 1 goto _2>>%temp%\findlast.bat
  6. echo set hd_ep=%%1>>%temp%\findlast.bat
  7. echo Shift>>%temp%\findlast.bat
  8. echo goto _1>>%temp%\findlast.bat
  9. echo :_2>>%temp%\findlast.bat
  10. call findlast.bat 1 2 3 4 5 6 7 8 9 10 11 12 13 14

  11. 后面判断可识别最后盘符与主激活分区是否等价、跳转、执行GHOST语句部分略。。。
复制代码

说明:
%hd_id% 变量是硬盘号;
findlast.bat、ghststat.txt 可按需删除。。。
作者: dudubird    时间: 2009-7-26 17:04
原帖由 zhxy9804 于 2009-6-14 09:08 发表
2.有时候我dos下运行ghost脚本。大体提示一个盘没锁定,是继续还是no,两个都可以点那个都可以继续执行脚本。,如何跳过这个?
-sure我已经用了。


我也碰到过这种提示,后来用了-auto参数就解决了。
作者: srlmm    时间: 2009-7-27 20:51
linux下超级工具!!!!!!!!!!!!!!
作者: hysys32    时间: 2009-7-28 08:23
新手菜鸟也 观望中....
作者: 快雪时晴    时间: 2010-1-12 21:03
标题: WIN32下单引号如何处理?(已解决)
R:\>awk 'BEGIN { print "hello,world" }'
awk: 'BEGIN
awk: ^ invalid char ''' in expression



看来在WIN32下要用
AWK -f f.AWK  in.txt

形式才可以。

[ 本帖最后由 快雪时晴 于 2010-1-12 21:12 编辑 ]
作者: blithewind    时间: 2010-1-12 21:46
看来gghost系列又要更新了
作者: victor888    时间: 2010-1-12 22:38
难道你还要升级GGHOST?
作者: lianjiang    时间: 2010-1-13 09:05
原帖由 victor888 于 2010-1-12 22:38 发表
难道你还要升级GGHOST?


GGhost一键恢复中早就用了awk来进行部分字符的处理了。
注意这是两年前的帖子了。
不过我只会一点点最基本的用法,处理硬盘分区之类已够用了。呵呵。
作者: lianjiang    时间: 2010-1-13 09:07
原帖由 blithewind 于 2010-1-12 21:46 发表
看来gghost系列又要更新了


更新啥?

有什么好的改进建议吗?




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3