中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » ghost连续备份三个分区批处理制作的问题
作者:
标题: ghost连续备份三个分区批处理制作的问题 上一主题 | 下一主题
chjlcn
初级用户





积分 43
发帖 7
注册 2005-8-5
来自 广东
状态 离线
『楼 主』:  ghost连续备份三个分区批处理制作的问题

cls

set todayFolder=%date:~0,4%%date:~5,2%%date:~8,2%

md %todayFolder%
cd %todayFolder%

md c
md d
md e

cd ..


ghost -clone,mode=pdump,src=1:1,dst=g:\ghost\%todayFolder%\d\c.gho -fx -z2 -sure
ghost -clone,mode=pdump,src=1:2,dst=g:\ghost\%todayFolder%\d\d.gho -fx -z2 -sure
ghost -clone,mode=pdump,src=1:3,dst=g:\ghost\%todayFolder%\e\e.gho -rb -z2 -sure

在windows下将ghost改为ghost32可以执行,
但在Dos下执行时创建的目录c,d,e是在g:\ghost\ 而不是在g:\ghost\%todayFolder\ 。
最后c.gho,d.gho.e.gho是在g:\ghost\ 下,而不是我想要的g:\ghos\%todayFolder\c\,
g:\ghost\%todayFolder%\d\,g:\ghost\%todayFolder%\e\

我发现在ghost时路径提示是g:\ghost\\d\c.gho.
%todayFolder%参数无效?怎样才行?

2005-8-5 08:16
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (287800360)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

试试这样:
cls

set todayFolder=%date:~0,4%%date:~5,2%%date:~8,2%

md g:\ghost\%todayFolder%\c
md g:\ghost\%todayFolder%\d
md g:\ghost\%todayFolder%\e

ghost -clone,mode=pdump,src=1:1,dst=g:\ghost\%todayFolder%\c\c.gho -fx -z2 -sure
ghost -clone,mode=pdump,src=1:2,dst=g:\ghost\%todayFolder%\d\d.gho -fx -z2 -sure
ghost -clone,mode=pdump,src=1:3,dst=g:\ghost\%todayFolder%\e\e.gho -rb -z2 -sure



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-8-5 09:05
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
chjlcn
初级用户





积分 43
发帖 7
注册 2005-8-5
来自 广东
状态 离线
『第 3 楼』:  

多谢关注。

不过在dos下%todayFolder%参数还是空字符串。
创建的目录在g:\ghost\\c.

不行啊…………好烦。

2005-8-5 15:47
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (287800360)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 4 楼』:  

在纯DOS环境下,根本就不支持这样的设置变量的方式:
set todayFolder=%date:~0,4%%date:~5,2%%date:~8,2%

这种设置方法只能在NT的cmd环境下使用。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-8-5 16:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 5 楼』:  

Re chjlcn:

  纯DOS环境下,另有获取日期变量的方法,见于 {8905}[分享]批处理编程的异类 第7楼的代码。

  另外,如果要用作不支持长文件名系统中(本站的MSDOS7.10是支持的)的文件或者目录名,需要注意观察日期变量中“年”的位数;如果它是4位数,将会被截取后日期变量的最后两个字符,它有可能是2005的05,也有可能是08-06的06,这取决于系统的日期格式。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-8-6 17:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chjlcn
初级用户





积分 43
发帖 7
注册 2005-8-5
来自 广东
状态 离线
『第 6 楼』:  

:: GetVar.bat - Get from 'PROMPT' text to environment variable
:: Will Sort - 10:29 2005-7-16 - CMD@XP/COMMAND@Win98/MSDOS6.22
@echo off
echo exit | %comspec% /k prompt set %1=%2$_:: > _GetVar.bat
call _GetVar.bat
for %%f in (_GetVar*.*) do del %%f

程序的思路是一个参数设置命令写入文件,调用,删除临时文件。
我查帮助还是不懂
%COMSPEC%  系统 返回命令行解释器可执行程序的准确路径。

$_回车
这一句整句详细解释一下好吗?
echo exit | %comspec% /k prompt set %1=%2$_:: > _GetVar.bat

2005-8-7 09:39
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (287800360)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 7 楼』:  

嘿嘿,关键就是这一句!自己慢慢理解吧。这是批处理使用技巧中的精华。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-8-7 10:48
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
chjlcn
初级用户





积分 43
发帖 7
注册 2005-8-5
来自 广东
状态 离线
『第 8 楼』:  

@climbing

可以给点提示要学习哪几个命令吗?
有没有相关的电子书下载?

2005-8-7 18:21
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (287800360)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 9 楼』:  

Re chjlcn:

  真要详细说起来,可能会很复杂,因为我的表达能力有限,往往不能掌握读者已经知道了什么,还不知能什么。也许将来的DOS书中,我会专文解释这个代码的技巧。

  目前只能简单地提供一些掌握它的思路:
  
  1、注释掉删除_GetVar.bat的for语句,然后在命令行执行 getvar today=$D 查看_GetVar.bat的内容;

  2、去除echo一句的重定向部分 > _GetVar.bat,然后在命令行执行 getvar today=$D 查看屏幕的输出内容;    

  3、在命令行分别单独执行:
   echo exit | %comspec% /k prompt set today=$D$_::
   %comspec% /k prompt set today=$D$_::
   prompt set today=$D$_::
  然后观察其各自的输出内容,相信你会有所体悟的。

[ Last edited by willsort on 2005-8-8 at 13:26 ]



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-8-8 13:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chjlcn
初级用户





积分 43
发帖 7
注册 2005-8-5
来自 广东
状态 离线
『第 10 楼』:  

发现在dos下不支持%myDate:~0,2% 这样取字符,有什么函数可以取得一个字符中的一些字符?

2005-8-9 18:03
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (287800360)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 11 楼』:  

willsort已经给出解决办法了,你没有仔细研究吗?



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-8-9 21:35
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复

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


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



论坛跳转: