无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4536|回复: 29
打印 上一主题 下一主题

dos环境变量!

[复制链接]
跳转到指定楼层
1#
发表于 2002-4-1 13:47:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[这个贴子最后由huwuyuan在 2002/04/01 03:23pm 编辑]

1,SET temp=%CDROM%:\;%CDROM%:\ghost\;
书上说这样可以的,但是我设了出错找不到呀!
难道只能这样设:
SET temp=%CDROM%:\
2,if exist %CDROM%:\GHOST\CDROM.gho goto _ghost
是否可以这样设:
if exist %CDROM%:\GHOST\*.gho goto _ghost
是否支持*和?
不知那位老大,能提示一下!
2#
 楼主| 发表于 2002-4-1 15:24:09 | 只看该作者

dos环境变量!

第二个问题好像支持!
回复

使用道具 举报

3#
发表于 2002-4-1 16:53:03 | 只看该作者

dos环境变量!

第一个按理来说是没问题的,你检查一下有没有多个空格什么的?
回复

使用道具 举报

4#
 楼主| 发表于 2002-4-1 17:39:44 | 只看该作者

dos环境变量!

谢谢,我再查查!!
回复

使用道具 举报

5#
 楼主| 发表于 2002-4-1 17:43:52 | 只看该作者

dos环境变量!

wwwfox对这个比较在行,希望他能回答这个问题!
回复

使用道具 举报

6#
发表于 2002-4-1 17:56:14 | 只看该作者

dos环境变量!

[这个贴子最后由wwwfox在 2002/04/01 05:56pm 编辑]

SET temp=%CDROM%:\;%CDROM%:\ghost\;
如果你是设查找路径,应该设为
PATH %CDROM%:\;%CDROM%:\ghost\;
第二个是可以的
回复

使用道具 举报

7#
 楼主| 发表于 2002-4-1 18:04:21 | 只看该作者

dos环境变量!

下面引用由wwwfox2002/04/01 05:56pm 发表的内容:
SET temp=%CDROM%:\;%CDROM%:\ghost\;
如果你是设查找路径,应该设为
PATH %CDROM%:\;%CDROM%:\ghost\;
第二个是可以的
我设的不是查找路径,
我设的值,在批处理下面的命令将用到,
对了,老大,我是否可以用条件测试,查出
if exist %CDROM%:\GHOST\*.gho goto _ghost
我要得到这个*.gho的文件名,怎么写可以获得?

回复

使用道具 举报

8#
发表于 2002-4-1 18:06:20 | 只看该作者

dos环境变量!

你的第一个是可以的,但是有什么意义?
第二个也是可以的。
回复

使用道具 举报

9#
发表于 2002-4-1 18:09:38 | 只看该作者

dos环境变量!

[这个贴子最后由wwwfox在 2002/04/01 06:10pm 编辑]

你不是说找不到文件吗,如果你是想在DOS把打入GHOST.EXE就能执行,就是设置路径啊。
另外,由于你是在做光盘,一般这个GHOST文件要设定好。至于如何找到,现在我还没有想到如何实现。
回复

使用道具 举报

10#
发表于 2002-4-1 18:30:29 | 只看该作者

dos环境变量!

set的[用  法]  set [环境变量]=[字符串]
注意是字符串,不管你在=号后面输入什么都是当成一串字符。像你输入的set temp=%CDROM%:\;%CDROM%:\ghost\;是不是想设置路径,那可以用path阿。
回复

使用道具 举报

11#
 楼主| 发表于 2002-4-1 19:37:42 | 只看该作者

dos环境变量!

[这个贴子最后由huwuyuan在 2002/04/01 07:58pm 编辑]
下面引用由小坏2002/04/01 06:30pm 发表的内容:
set的[用  法]  set =
注意是字符串,不管你在=号后面输入什么都是当成一串字符。像你输入的set temp=%CDROM%:\;%CDROM%:\ghost\;是不是想设置路径,那可以用path阿。
:: 这是用来检测光盘的镜像文件在哪个目录下!
if exist %CDROM%:\GHOST\*.gho goto _ghost
if exist %CDROM%:\*.gho goto _ghost
goto _ERROR
:: 进入光盘的镜像文件的目录,并将ghost变量的路径设好!
:_ghost
%CDROM%:
SET temp=%CDROM%:\ghost\;%CDROM%:\;
goto :_txt
:: 进入光盘的镜像文件的目录,并将ghost变量的路径设好!
:_gen
%CDROM%:
SET temp=%CDROM%:\
goto :_txt
:_txt
cls
TW /Q
echo Loading...
:: without -rb switch! -quiet
%temp%ghost.exe -batch -sure -afile=NUL -clone,mode=pload,src=%temp%CDROM.gho:1,dst=1:1
:: 下面是表示恢复出错,给出错误提示!
if errorlevel 1 goto _abort
:: 回到虚盘中,执行虚盘的gcdrom.bat,要不拿出光盘后就找不到文件了!
%RAMD%:
path=%RAMD%:\BAT;%RAMD%:\;C:\;%CDROM%:\bat;%CDROM%:\;
TW /np > nul
echo.
echo        *****************************************************************
echo.
echo               ::ove CD-Rom, and reboot system.
echo.
echo               系统恢复已顺利完成,请拿出光盘后,按任意键重新启动系统。
echo.
echo        *****************************************************************
pause >nul
goto _end
1,我就不想用两个标签(-ghost和-gen)
有其它办法吗?
2,我想用条件测试自动找出*.gho文件,并将文件名放到恢复的参数使用,有办法吗?
  怎么写?
回复

使用道具 举报

12#
发表于 2002-4-1 19:45:34 | 只看该作者

dos环境变量!

2. 除非是设个虚拟盘,用dir *.gho >x:\dir.txt
然后还得自己用C语言来编程序,读取dir.txt里面的文件名并传给环境变量。
问题是,如果还要考虑存在多个gho的问题,那就很复杂了。
回复

使用道具 举报

13#
 楼主| 发表于 2002-4-1 19:51:28 | 只看该作者

dos环境变量!

下面引用由wzh992002/04/01 07:45pm 发表的内容:
2. 除非是设个虚拟盘,用dir *.gho >x:\dir.txt
然后还得自己用C语言来编程序,读取dir.txt里面的文件名并传给环境变量。
问题是,如果还要考虑存在多个gho的问题,那就很复杂了。
我试试!
回复

使用道具 举报

14#
发表于 2002-4-1 20:04:22 | 只看该作者

dos环境变量!

1.如果是老版本的DOS622,有一个APPEND命令可以实现你这个要求,但是DOS7.1里面已经没有了。
其实你分两段写并不影响什么。
回复

使用道具 举报

15#
 楼主| 发表于 2002-4-1 20:21:41 | 只看该作者

dos环境变量!

下面引用由wzh992002/04/01 07:45pm 发表的内容:
2. 除非是设个虚拟盘,用dir *.gho >x:\dir.txt
然后还得自己用C语言来编程序,读取dir.txt里面的文件名并传给环境变量。
问题是,如果还要考虑存在多个gho的问题,那就很复杂了。
我可以将dir写道虚盘中,
好像ghost支持读txt文件?
我找找?或者提供一个给我?
回复

使用道具 举报

16#
发表于 2002-4-1 20:34:05 | 只看该作者

dos环境变量!

ghost怎么支持读txt文件呢?而且txt里面还有文件容量、时间等不需要的内容需要跳过的。
那个APPEND我看没什么用了。
BTW,干脆你来一个万能程序好了,用dir %CDROM%: *.gho /s>%RAM%:\dir.txt,/s是用来列光盘的所有子目录,多省事呀,藏在光盘里的GHO都能找出来,然后用C语言编的程序如果发现有多个GHO,能自动弹出个菜单选择,选好以后把环境变量填好就能GHOST:)
回复

使用道具 举报

17#
发表于 2002-4-2 10:08:51 | 只看该作者

dos环境变量!

你可以这样获取光盘下的*.gho文件的列表  dir /s /b *.gho 但是如果光盘上文件很多,那将很慢。而且你怎么把列表读出来呢?
如果你只在一个目录下找*.gho文件,可以这样 for %%1 in (*.gho) do set ghof=%%1
回复

使用道具 举报

18#
发表于 2002-4-2 10:17:27 | 只看该作者

dos环境变量!

:)看来最简单的办法出来了。
回复

使用道具 举报

19#
 楼主| 发表于 2002-4-2 10:40:50 | 只看该作者

dos环境变量!

下面引用由小坏2002/04/02 10:08am 发表的内容:
你可以这样获取光盘下的*.gho文件的列表  dir /s /b *.gho 但是如果光盘上文件很多,那将很慢。而且你怎么把列表读出来呢?
如果你只在一个目录下找*.gho文件,可以这样 for %%1 in (*.gho) do set ghof=%%1
还是有点不明白,能详细点吗?
回复

使用道具 举报

20#
发表于 2002-4-2 12:01:19 | 只看该作者

dos环境变量!

你可以试一试啊,dir /s 是察看当前目录下和目录下所有子目录, dir /b 是使用空格式没有标题信息或摘要(那就没有了盘符,文件大小等信息了)。
for %%1 in (*.gho) do set ghof=%%1  这是附值变量ghof为当前目录下的所有*.gho文件名,这是一个dos下的循环语句,如果当前目录下有多个*.gho那dos就会把所有的*.gho文件名一次一次的付给变量ghof
那么在后面的批处理中变量ghof就是你要找的*.gho文件名了。然后你可以这样做:
for %%1 in (*.gho) do set ghof=%%1
call *.bat %ghof%
(*.bat 内容 if "%ghof%"=="win98.gho" goto _setup98)
那就看你这么样去灵活调用了
当时我想这样写for %%1 in (dir /s /b *.gho) do set ghof=%%1让dos去找光盘下的所有的*.gho再分别附值给ghof,可惜不行:(
回复

使用道具 举报

21#
 楼主| 发表于 2002-4-2 12:08:43 | 只看该作者

dos环境变量!

谢谢
回复

使用道具 举报

22#
发表于 2002-4-2 15:56:17 | 只看该作者

dos环境变量!

上面说的for %%1 in (*.gho) do set ghof=%%1
call *.bat %ghof%
在*.bat里调用变量%ghof%,不能这样写,因为它会执行第一句完了才执行第二句,那就不能达到我们的要求了。
应该这样
for %%1 in (*.gho) do call *.bat %%1
回复

使用道具 举报

23#
 楼主| 发表于 2002-4-2 22:08:50 | 只看该作者

dos环境变量!

小坏谢谢!
我试过了,可以,但是有一个问题!
比如,我都back.gho是在%CDROM%:\ghost\ 下,他只能 ghof=back.gho
如果是这样就好了:ghof=%CDROM%:\ghost\back.gho
那么我可以直接可用了,要不下面还是要指定路径不方便!
回复

使用道具 举报

24#
发表于 2002-4-3 01:19:13 | 只看该作者

dos环境变量!

为什么要指定路径呢?你先用path设置好ghost.exe的路径,然后在任何目录下都可以调用ghost.exe的。
如果你真的要用到ghof=%CDROM%:\ghost\back.gho那你是一下这样:
for %1 in (*.gho) do set ghof=%cd%\%1
回复

使用道具 举报

25#
 楼主| 发表于 2002-4-3 09:27:41 | 只看该作者

dos环境变量!

下面引用由小坏2002/04/03 01:19am 发表的内容:
为什么要指定路径呢?你先用path设置好ghost.exe的路径,然后在任何目录下都可以调用ghost.exe的。
如果你真的要用到ghof=%CDROM%:\ghost\back.gho那你是一下这样:
for %1 in (*.gho) do set ghof=%cd%\%1
1,其它的可执行文件可以用path
但是ghost.exe就不行,我不知道什么原因,
2,关于你说的ghof=%cd%\%1我可以试试!目前我是这样的:
if exist %CDROM%:\GHOST\*.gho goto _d1
if exist %CDROM%:\*.gho goto _d2
if exist %CDROM%:\GHO\*.gho goto _d3
goto _ERROR
:_d1
%CDROM%:
SET gfile=%CDROM%:\ghost\
cd \ghost
for %%1 in (*.gho) do set name=%%1
cd \
goto :_filey
……
回复

使用道具 举报

26#
发表于 2002-4-3 10:08:51 | 只看该作者

dos环境变量!

你在win2000下试一试
for /f %1 in ('dir /s /b *.txt') do type %1 或
for %1 in (*.txt) do set ghof=%cd%\%1
可惜在dos7.0下不行  :)
你说ghost.exe 不能用path ,你试一下启动时把ghost.exe copy 到虚拟盘里,path指向虚拟盘,或用%RAMD%\ghost.exe 来调用。
回复

使用道具 举报

27#
 楼主| 发表于 2002-4-3 13:54:04 | 只看该作者

dos环境变量!

[这个贴子最后由huwuyuan在 2002/04/03 01:55pm 编辑]
下面引用由小坏2002/04/03 10:08am 发表的内容:
你在win2000下试一试
for /f %1 in ('dir /s /b *.txt') do type %1 或
for %1 in (*.txt) do set ghof=%cd%\%1
可惜在dos7.0下不行  :)
...
我是在windows98启动盘,就是dos7.0下,可能不行!
回复

使用道具 举报

28#
 楼主| 发表于 2002-4-3 15:04:56 | 只看该作者

dos环境变量!

[这个贴子最后由huwuyuan在 2002/04/03 03:05pm 编辑]

for %1 in (*.txt) do set ghof=%cd%\%1
这样写好像用问题?
回复

使用道具 举报

29#
发表于 2002-4-3 17:06:15 | 只看该作者

dos环境变量!

其实没必要这么复杂,只要光盘上用CD进到GHO的目录下面就可以了,GHOST里面不要指定绝对路径,用%CDROM%:%1来表示光盘上的GHO。GHOST.exe的位置预先设好就OK.
if exist %CDROM%:\GHOST\*.gho goto _d1
if exist %CDROM%:\*.gho goto _d2
if exist %CDROM%:\GHO\*.gho goto _d3
goto _ERROR
:_d1
%CDROM%:
SET gfile=%CDROM%:\ghost\
cd \ghost
for %%1 in (*.gho) do set name=%%1
REM cd \
goto :_filey
回复

使用道具 举报

30#
 楼主| 发表于 2002-4-3 18:59:29 | 只看该作者

dos环境变量!

下面引用由wzh992002/04/03 05:06pm 发表的内容:
其实没必要这么复杂,只要光盘上用CD进到GHO的目录下面就可以了,GHOST里面不要指定绝对路径,用%CDROM%:%1来表示光盘上的GHO。GHOST.exe的位置预先设好就OK.
if exist %CDROM%:\GHOST\*.gho goto _d1
if exist ...
我要实现的功能是:::     使用说明
::   目录和文件名最好用大写字母(如果你用cdimage做iso,不选-d就不会有这个问题)
:: 1,关于光盘的备份镜像*.GHO文件的放置位置.
::   A,可以任意命名,但是必须符合DOS 8.3格式。
::   B,必须任意放到以下三个目录,(光盘根目录;GHOST目录;GHO目录)
::   C, 这三个目录下只能有一个*.GHO文件,否则会出错!

:: 2,关于GHOST.EXE放置位置.
::   A,可以任意放到以下四个目录,(光盘根目录;GHOST目录;GHO目录;OOT\GHOST  目  录)
::   B,必须命名为GHOST.EXE,需要是6.0以上版本。
:: 3,关于TW.EXE放置位置.
::   必须放到光盘\BAT目录下
目前都已经实现了,但是我觉得写法上不完美!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-17 17:46

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表