![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-29 07:06 |
共 47,816 主题排行 / 349,916 发帖 / 今日 2 篇 / 48,265 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教:如何根据文件里的字符,自动创建目录。【已基本解 |
| 可打印版本 3,543 / 14 |
| 第1楼 lianjiang2004 | 发表于 2006-11-20 05:55 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
请教:如何根据文件里的字符,自动创建目录。【已基本解 请教:如何根据文件里的字符,自动创建目录。
缘由:自定义路径及文件名,用ghost来自动备份系统。 1),有设置文件set.ini 里面只有这样一行内容: 1:5:\backup\sys.gho 2),有gdisk生成的硬盘分区文件 hd1.txt 里面内容如下(例): Disk Partitions Cylinders Heads Sectors Mbytes Model 1 7 14593 255 63 114473.5 ST3120026AS Partition Status Type Volume Label Mbytes System Usage C: 1 A PRIMARY 7538.3 NTFS/HPFS 7% 2 H PRIMARY 7467.7 NTFS/HPFS 7% 3 EXTENDED 99464.9 87% D: 4 LOGICAL 10001.4 NTFS/HPFS 9% E: 5 LOGICAL 15006.0 NTFS/HPFS 13% F: 6 LOGICAL APPZ 30004.2 FAT32 26% G: 7 LOGICAL 44453.3 NTFS/HPFS 39% 要求: 根据设置文件及hd1.txt,知道1:5就是Windows下的F盘,如果F盘不存在backup目录的话,自动建立F:\backup这个目录。 Win2k/winXP下用 不知道我的问题讲清楚没有。谢谢各位! ============================== 上面的问题,变通后,已基本自行解决。 [ Last edited by lianjiang2004 on 2006-11-20 at 08:01 AM ] |
|
| 第2楼 0451lym | 发表于 2006-11-20 09:25 |
| 高级用户 发帖 357 积分 760 | |
|
终于碰到一个同样问题的哥们了,这个好象不是最佳办法!
|
|
| 第3楼 0451lym | 发表于 2006-11-20 09:33 |
| 高级用户 发帖 357 积分 760 | |
|
gdisk %a% > a:\DISK.TXT
del a:\1.bat find ": 5" a:\DISK.TXT > a:\1.bat a:\1.bat if not exist backup md backup [ Last edited by 0451lym on 2006-11-20 at 09:49 AM ] |
|
| 第4楼 0451lym | 发表于 2006-11-20 09:36 |
| 高级用户 发帖 357 积分 760 | |
|
E: 5 LOGICAL 15006.0 NTFS/HPFS 13%
这句当批处理执行后,会自动跳转盘符.虽然是错误的使用,但是却是最直接的! 如果感觉不妥当还可以用其他的小命令来提取盘符! |
|
| 第5楼 0451lym | 发表于 2006-11-20 09:44 |
| 高级用户 发帖 357 积分 760 | |
|
如果全是对于NTFS磁盘操作还可以用omnifs来完成!
omnifs MSDIR 1.4:\backup 但是omnifs唯一遗憾的是对FAT32大分区不识别! 如果识别的话就好了,那就可以在任意分区建立目录,而不用gdisk来回调用! |
|
| 第6楼 0451lym | 发表于 2006-11-20 09:52 |
| 高级用户 发帖 357 积分 760 | |
|
如果有高手把1:? 的格式弄进COMMAND就好了。
这样可以直接这样操作:MD 1:1 backup |
|
| 第7楼 lianjiang2004 | 发表于 2006-11-20 10:25 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
你这不是自动读取set.ini文件实现的。
很显然,我改成1:3:\sysback\winxp.gho时,你还得改批处理。 ===================== 我原来set.ini里是设定成1:5:\backup\sys.gho形式,这样可以直接创建批处理, 但是遇到非根目录时,需要手动先建目录问题。不知如何解决。 没办法,我把一行分成几行,分别设定分区号,目录,文件名,把它们赋给3个变量。就成这样了下面这样。(尽管ghost -dd运行时间比较长,考虑到使用方便些,改成找GHSTSTAT.TXT里的了) rem 完整路径:1:5:\sysback\sys.gho rem 保存分区(如1:4) set fenqu=1:5 rem 保存目录(如\sysback) set mulu=\sys rem 保存文件名(如sys.gho) set wenjian=sys.gho 找出分区号对应的盘符,然后建目录。并行成批处理。 [ Last edited by lianjiang2004 on 2006-11-20 at 10:39 AM ] |
|
| 第8楼 0451lym | 发表于 2006-11-20 10:32 |
| 高级用户 发帖 357 积分 760 | |
Originally posted by lianjiang2004 at 2006-11-20 10:25: 晕,用变量带入呀! set x=1 set y=2 %x%:%y%:\sysback\winxp.gho [ Last edited by 0451lym on 2006-11-20 at 10:34 AM ] |
|
| 第9楼 0451lym | 发表于 2006-11-20 10:42 |
| 高级用户 发帖 357 积分 760 | |
|
这是我刚才测试用的:
gdisk 1 > a:\DISK.TXT if exist a:\1.TXT del a:\1.TXT find ": 6" a:\DISK.TXT > a:\1.TXT GetInfo.com /g:2,a:\1.TXT %thestring% if not exist 0451lym md 0451lym 成功,但是如果挂起NTFS驱动就麻烦了.在DISK.TXT中所有硬盘盘符都不会显示的! 所以要结合omnifs使用! 总共用到4个小软件: 1、gdisk:不用说了都知道! 2、find:读取文本行! 3、GetInfo.com:指定读取文本行,并且设为变量。因为find写入文件很讨厌,多出一行来!(---------------- DISK.TXT) 4、omnifs:对NTFS等分区直接写入操作! 我去DOS在试试去! [ Last edited by 0451lym on 2006-11-20 at 10:49 AM ] |
|
| 第10楼 lianjiang2004 | 发表于 2006-11-20 10:54 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
我设定的是在windowsxp/2k下操作(因为备份时系统肯定是好的),首先根据设定建立目录,生成批处理,把这批处理拷贝到指定位置c:,然后启动到DOS,找到后执行这个批处理进行备份或恢复。
[ Last edited by lianjiang2004 on 2006-11-20 at 10:56 AM ] |
|
| 第11楼 0451lym | 发表于 2006-11-20 10:58 |
| 高级用户 发帖 357 积分 760 | |
|
呵呵,我考虑的是在DOS下引入,所以有些出入!
太晚了,先睡觉去了,改天在接着研究!哥们你也早点休息吧,看看论坛有没有高手可以解决! [ Last edited by 0451lym on 2006-11-20 at 11:11 AM ] |
|
| 第12楼 3742668 | 发表于 2006-11-20 13:06 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
1.由于不知道多硬盘存在的情况下fd1.txt的格式,所以按照想象对其做出的相关处理。 2.没有2k系统,所以并未测试2k下运行的情况。 |
|
| 第13楼 lianjiang2004 | 发表于 2006-11-20 21:21 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
谢谢版主,
多硬盘没关系,因为运行gdisk时,要先指定硬盘号来生成hd1.txt。 能不能解释一下这两行的含义? for /f "tokens=1,2" %%i in (hd1.txt) do set "%%j=%%i !%%j!" for /f "tokens=%disk%" %%i in ("!%partition%!") do set drive=%%i 另外,就是gdisk里的6,在ghost里是1:5,(ghost里不计扩展分区的号,),这个问题能解决更好,不能解决的话,我用GHSTSTAT.TXT来确定。 ------------- 要求: 根据设置文件及hd1.txt,知道1:5就是Windows下的F盘,如果F盘不存在backup目录的话,自动建立F:\backup这个目录。 ---------------- [ Last edited by lianjiang2004 on 2006-11-20 at 10:31 PM ] |
|
| 第14楼 不得不爱 | 发表于 2006-11-21 00:51 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
运行gdisk是在纯DOS下进行的吗?纯DOS下FOR 是没有参数的
|
|
| 第15楼 lianjiang2004 | 发表于 2006-11-21 02:49 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
不是,是在windows下进行的,目的就是根据设定,自动创建设置目录,再进行ghost备份,否则就要手动建目录,或者直接就备份在根目录下。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |