|
GOTOmsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『楼 主』:
对 GHOST 用户参数的 借鉴和思考...
自己在写硬盘读写器的过程中,借鉴了GHOST的表示硬盘和分区的参数,很简洁
比如 : 1:2...
但是,同时觉得GHOST 的 其他参数 比如 SRC,DST,CLONE,PDUMP,PRESTORE,SPLIT等等,是不是有点背离这种精神了 ..
看到一些编程书(有关用户界面)介绍设计程序应该不要让用户涉及到程序内部的东西,诸如读取数据(READ模式),写模式(WRITE),什么类型,源数据(SRC),目标数据(TARGET),倾倒(DUMP),恢复(RESTORE)等等,因为这些是程序员的事,程序员写程序往往不由自主的把这些东西带出来,这就不是充分为用户考虑,应该动脑筋设计出不带程序痕迹而易用(user friendly)...
当然,也得有个简单的约定(比如,1,2,代表硬盘,1:2 代表硬盘的分区....)
刚刚设想自己刚写的迷你硬盘读写器的参数采用什么方式?
为作到既简洁又有丰富的功能(当然是就我程序中含有的功能..)
初步设计如下参数模式,供参考..
除了TO之外,不见一个程序员的术语...
1
程序 1 TO 2
自然就是把硬盘1复制到硬盘2,无须源硬盘和目标硬盘,自然是采用左是源,右是目标,符合一般人的思维习惯.甚至连 TO 不要也是可以的...当然有了,思维更清晰
4(多硬盘)
程序 1,2 TO 3
5(加入分区功能)
程序 1:2 TO 2:3
把硬盘1的分区2复制到硬盘2的分区3
6(支持盘符)
程序 E: TO 2:3
7
程序 C: TO G:
支持镜象文件
8
程序 1 TO (1)
把硬盘1装入镜象文件1
9
程序 1 TO (1=C)
把硬盘1装入镜象文件1,压缩,默认级别
10
程序 1 TO (1=C9)
把硬盘1装入镜象文件1,压缩,级别9
11
程序 1 TO (1=C9=K)
把硬盘1装入镜象文件1,压缩,级别9,加密
12
程序 1 TO (1=C9=K=V)
把硬盘1装入镜象文件1,压缩,级别9,加密,默认分卷(1000MB)
12
程序 1 TO (1=C9=K=V1500)
把硬盘1装入镜象文件1,压缩,级别9,加密,分卷(1500MB)
12
程序 1 TO (1=C9=K=V1500=E)
把硬盘1装入镜象文件1,压缩,级别9,加密,分卷(1500MB),每个分卷都要加密(与第一个文件一样的密码)
12
程序 1 TO (1=C9=K=V1500=E?)
把硬盘1装入镜象文件1,压缩,级别9,加密,分卷(1500MB),每个分卷都要加密(每个文件都要提示用户输入不同密码)
13(根据镜象文件恢复)
程序 (1) TO 1
把镜象文件1恢复到硬盘1,自动检查是否是压缩,但不自动检查有无分卷
14(根据镜象文件恢复)
程序 (1=V) TO 1
把镜象文件1恢复到硬盘1,自动检查是否是压缩,
自动检查分卷,如无,则提示用户输入分卷名(如果用户后来改名了)
如果需要丰富功能的:
综合:
程序 1:2,2:3,3:4 TO 3:2,(G:\BACK.Z=C9=K=V1500=E?)
如果需要指定扇区位置,并指定操作扇区数的 :
(- 表示要操作的开始扇区位置
+ 表示要操作的总扇区数)
1
程序 1-100+1000 TO 2
从第100扇区开始把硬盘1的1000扇区 复制到硬盘的0扇区
2
程序 1-100+1000 TO 2-200
3
程序 1:2-100+1000 TO 2:3-300
4
程序 1:2+1000,E:-300 TO G:-200,2:4-500
5
程序 1:2+1000,E:-300 TO G:-200,(H:\BACK.Z=C9=K=V500=E?)+1000,2:4-500
把硬盘1的分区2, 1000扇区 和E:盘的第300扇区,全部 装入到G:盘的200扇区处(全部剩下扇区)和文件H:\BACK.Z (1000扇区,指未压缩)和硬盘2的分区4的500扇区处.
...
我的迷你硬盘读写器将尝试采用这个参数模式....
[ Last edited by GOTOmsdos on 2006-8-19 at 21:46 ]
|
|
2006-8-19 21:43 |
|
|
wang6610
银牌会员
积分 1246
发帖 488
注册 2003-11-11
状态 离线
|
『第
2 楼』:
思路很好,越简单越需要考虑严谨周密。
避免矛盾和重复。
[ Last edited by wang6610 on 2006-8-19 at 22:41 ]
|
|
2006-8-19 22:39 |
|
|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
3 楼』:
1:支持盘符!DOS下的盘符?还是win下的?是否考虑放弃以盘符方式备份,毕竟vista的诞生还会出现新的格式,有个ntfs盘符交错已经够乱了,不如刚开始设计时就不考虑盘符支持。
2:如上参数都是数字是否会出现误操作?是否考虑备份恢复操作加入核心参数?如备份用/B 恢复用/R 扇区操作/F(字母可选)这样也可以避免一些误操作。另外1 TO (1=C9=K=V1500=E) 的=符号是否考虑改用已习惯的 - 符号。
|
|
2006-8-19 22:48 |
|
|
GOTOmsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
4 楼』:
我原来的参数是
程序
1
-r|w -d1 -d2
-r|w -d1 -s100 -d2
-r|w -d1 -s100 -n1000 -d2
-r|w -d1 -s100 -n1000 -d2 -s200
2
-r|w -d1 -p1 -d2 -p2
-r|w -d1 -p1 -s100 -d2 -p2
-r|w -d1 -p1 -s100 -n1000 -d2 -p2 -s300
3
-r|w -d1 -ffile
-r|w -d1 -p1 -ffile.z -c9 -k -v1000 -e?
....
现在,感觉很烦.
|
|
2006-8-19 22:49 |
|
|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
5 楼』:
再来一个有点异想天开的想法
程序 1:2,2:3,3:4 TO 3:2,(?:\BACK.Z=C9=K=V1500=E?)
?:\BACK.Z 这个?类似find的功能
|
|
2006-8-19 22:58 |
|
|
GOTOmsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
6 楼』:
TO fastslz
1
因为是DOS程序,盘符自然是DOS盘符(FAT12,FAT16,FAT32),如果要处理非FAT分区,程序有选项,可显示各种形式的分区表项,供用户操作前查看的....支持全部分区
2
关于误操作的问题,这个不用担心的,硬盘工具都是慎重又慎重的,不会一次定乾坤的
程序会告诉用户一些用户输入的参数信息,等用户确认的,如果是写盘,还多一次写确认.
我的设想中的 TO 这个唯一的关键字我觉得已经足够了,他清楚的表明了源和目标的关系.程序需要的种种参数已完全在左右的输入中了.
你提出的,如备份用/B 恢复用/R 扇区操作/F, 这些,,固然有他的用处,但是,与我的本帖的初衷(简洁,高效)就相悖了, 而且 在技术上,"备份" "恢复"的关系已经在TO中得到了说明,如果是 左--磁盘 右--文件 ,这自然是叫"备份"; 反过来, 自然就是叫"恢复".用户心中应该是很清楚的. 如果,硬要说出这些概念,有些不懂电脑的用户到反而会不太清楚这些概念了..
在GHOST用户界面 中的
DISK TO DISK,
DISK TO IMAGE
IMAGE TO DISK
PARTITION TO PARTITION
PARTITION TO IMAGE
IMAGE TO PARTITION
也就是这个道理吧?
(他没有说,在此处 备份,在此处恢复...)
这也可能是思维习惯的问题..
3
至于 = 符号,我原先也考虑都用 - 号,但是 用户要输入含有 - 号 的文件名怎么办?
我也考虑过用 / * 等,最后还是觉得 = 好,它也不要同时按下 SHIFT,直接可以打出来,也醒目....
|
|
2006-8-19 23:16 |
|
|
GOTOmsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
7 楼』:
(?:\BACK.Z=C9=K=V1500=E?)
可以啊!
不过,要有一定的用处啊!
你要它表示什么功能用处呢?
嘿嘿
C语言中 著名的唯一的三木运算式 就是这样的:
XXX ? A : B
意思是: XXX 是真的吗? 如果是真的 就 A 否则就 B
哇! 多简洁! 既简洁清楚又有美感..
[ Last edited by GOTOmsdos on 2006-8-19 at 23:40 ]
|
|
2006-8-19 23:17 |
|
|
GOTOmsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
8 楼』:
那些老的优秀的 DOS LINUX 程序员 都有很多既有个性又简洁丰富功能的参数符号呢!
[ Last edited by GOTOmsdos on 2006-8-19 at 23:34 ]
|
|
2006-8-19 23:20 |
|
|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
9 楼』:
?:\BACK.Z
这么说吧,我是希望它自动去查找,如同命令
FOR %%A IN (1:2 1:3 1:4 1:5 1:6 1:7 1:8 1:9 1:10 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 3:1 3:2 3:3 3:4 3:5 3:6 3:7 3:8 3:9 3:10 4:1 4:2 4:3 4:4 4:5 4:6 4:7 4:8 4:9 4:10) DO %%A:\BACK.Z TO 1:1
即同时执行1:2至4:10而不会因为执行
1:2:\BACK.Z TO 1:1
找不到1:2:\BACK.Z后因为错误跳出而继续执行
1:3:\BACK.Z TO 1:1
直到执行完任何一个可能出现的数字,类似grub参数find --set-root /menu.lst上面(1:2 1:3 1:4 1:5 1:6 1:7 1:8 1:9 1:10 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 3:1 3:2 3:3 3:4 3:5 3:6 3:7 3:8 3:9 3:10 4:1 4:2 4:3 4:4 4:5 4:6 4:7 4:8 4:9 4:10)等于4个硬盘每个暂定可能会出现10个分区
[ Last edited by fastslz on 2006-8-20 at 00:38 ]
|
|
2006-8-20 00:24 |
|
|
GOTOmsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
10 楼』:
哦,这个意思..
你的意思是 当(?:\BACK.Z=C9=K=V1500=E?) 在左边时吧?
就是源文件.
因为是DOS程序, 所以,寻找FAT格式的分区还是可以考虑的,其他的自然就做不到了啊
不过,思路挺有意思
|
|
2006-8-20 00:59 |
|
|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
11 楼』:
这样就完美了,根本就不用考验盘符问题了
关于参数符号我觉的文件名中 , 出现几率少于 - 也算是习惯之内,
而=我在这里随便说说啊!在ghost参数中我习惯自定义压缩级别变量
set 压缩级别=-z2
而在你的在参数里就变成错误语法了
set 压缩级别==c9
虽然可以用set 压缩级别=c9但这也是我发现=符号不适合的一个原因,仅做参考
|
|
2006-8-20 01:02 |
|
|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
12 楼』:
其实恢复系统比备份系统更容易错,这点我想大家在日常ghost中经常遇到找不到某个.gho恢复系统失败。我也受grub的find启发,
grub命令行下find --set-root /system.gho试试
grub确实做到了只可惜不能打印内容到文件
|
|
2006-8-20 01:26 |
|
|
GOTOmsdos
铂金会员
C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『第
13 楼』:
1 - =
当然,这个符号是无所谓的,如果有更好的可以考虑换一换
但是,键盘上就是那么多可用的符号,其他的都觉得不合适
你建议的仍用 - ,可是,我还是觉得文件名还是经常用它的,
在LINUX中,全部都是用 - 的,在WIN/DOS中,也很常见的
一般都是 XXX-A-1, YYY-2.等等,用来区别的
还有, _ 也是 合法的文件名,有人也很喜欢用的,尤其是程序员出身的,
用它分割起来使文件名比 - 更清楚
至于你说的 = 与== 混淆, 这个其实,关系不大,因为毕竟程序中的 符号 用的是不多的
就那么几次...不至于引起很大的混淆..(而且都限定在括号中)
2 Z C
这个是可以考虑通用习惯的.
|
|
2006-8-20 01:49 |
|
|
johnsonlam
银牌会员
阿林
积分 1410
发帖 497
注册 2004-6-28 来自 九龍,香港
状态 离线
|
『第
14 楼』:
Quote: | Originally posted by GOTOmsdos at 2006-8-19 10:49 PM:
1
-r|w -d1 -d2
-r|w -d1 -s100 -d2
-r|w -d1 -s100 -n1000 -d2
-r|w -d1 -s100 -n1000 -d2 -s200
2
-r|w -d1 -p1 -d2 -p2
-r|w -d1 -p1 -s100 -d2 -p2
-r|w -d1 ... |
|
借 镜 LAME 的 作 法 ...
--preset 1
--preset 2
|
我 的 網 站 - http://optimizr.dyndns.org
|
|
2006-9-1 14:00 |
|
|