中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 请教:解压文件到虚拟内存盘关硬盘么事?
« [1] [2] »
作者:
标题: 请教:解压文件到虚拟内存盘关硬盘么事? 上一主题 | 下一主题
bc12060101
银牌会员





积分 1455
发帖 712
注册 2006-1-20
状态 离线
『楼 主』:  请教:解压文件到虚拟内存盘关硬盘么事?

列位看官及大侠:
      在DOS下使用批处理命令将压缩的CAB文件解压到内存中虚拟的磁盘上时,与硬盘的状态(分区表错误、未格式化、非FAT32格式或无硬盘等等)有关系么?

问题的由来:
      制作一启动盘,在硬盘为Fat32格式且已格式化状态下使用时,一切正常!但在摘除硬盘或硬盘未分区、未格式化、分区表错误等状态下,使用该启动盘可引导进入dos,虚拟内存盘也已建立,但本应在启动过程中解压到RAMD的文件(程序)未能解压。何解?
      解压文件到内存还得看硬盘的脸色?又不是他(硬盘)家的地盘!

嘿嘿,不才困惑不已,还望各位点拨。

(可以肯定 autoexec.bat 文件绝无问题)

2006-6-2 17:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 2 楼』:  

未能解压的具体提示是什么



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2006-6-2 18:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Scott0902
中级用户





积分 466
发帖 237
注册 2005-10-12
状态 离线
『第 3 楼』:  

看看路径有没有指向C盘
在看看path变量

2006-6-2 18:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 4 楼』:  

有些启动盘要那硬盘来保存临时文件!



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-6-2 21:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bc12060101
银牌会员





积分 1455
发帖 712
注册 2006-1-20
状态 离线
『第 5 楼』:  

首先感谢楼上三位大侠做答!
我前面已经申明, autoexec.bat 文件绝无问题,且在硬盘为Fat32格式且已格式化状态下使用时,一切正常!
      经过测试发现,只需将压缩包的压缩率减小一些,在“问题硬盘”上不能解压的问题就消失了!
     一个实例:将win98se原版启动盘内的ebd.cab文件解压后重新压缩(增大压缩比率)后装回原启动盘内,进行测试就出现我在前面叙述的问题:仅在“问题硬盘”时发生无法解压现象!将压缩比率减小再试,则又一切恢复正常。
      从上面的事例我们可以看到,似乎压缩文件的压缩率与硬盘存在某种“关系”,到底是何“关系”呢?还望大侠们指点迷津。
附上win98启动盘的autoexec.bat 及setramd.bat文件

autoexec.bat
---------------------
@ECHO OFF
set EXPAND=YES
SET DIRCMD=/O:N
set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
cls
call setramd.bat %LglDrv%
set temp=c:\
set tmp=c:\
path=%RAMD%:\;a:\;%CDROM%:\
copy command.com %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
copy extract.exe %RAMD%:\ > NUL
copy readme.txt %RAMD%:\ > NUL

:ERROR
IF EXIST ebd.cab GOTO EXT
echo Please insert Windows 98 Startup Disk 2
echo.
pause
GOTO ERROR

:EXT
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
echo The diagnostic tools were successfully loaded to drive %RAMD%.
echo.

IF "%config%"=="NOCD" GOTO QUIT
IF "%config%"=="HELP" GOTO HELP
LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%
echo.
GOTO QUIT

:HELP
cls
call help.bat
echo Your computer will now restart and the startup menu will appear.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
restart.com
GOTO QUIT

:QUIT
echo To get help, type HELP and press ENTER.
echo.
rem clean up environment variables
set CDROM=
set LglDrv=
--------------------------

setramd.bat
---------------------------
@echo off
set RAMD=
set CDROM=

echo.
echo Preparing to start your computer.
echo This may take a few minutes. Please wait...
echo.

a:\findramd

if errorlevel 255 goto no_ramdrive

if not errorlevel 3 goto no_ramdrive

goto do_shift

:loop
if errorlevel %1 goto no_shift

:do_shift
set cdrom=%2
shift
shift
if not %1*==* goto loop
goto no_ramdrive

:no_shift
set ramd=%2

if "%RAMD%"=="C" goto c_drive

goto success

:c_drive
echo Windows 98 has detected that drive C does not contain a valid FAT or
echo FAT32 partition. There are several possible causes.
echo.
echo 1.  The drive may need to be partitioned. To create a partition on the drive,
echo run FDISK from the MS-DOS command prompt.
echo.
echo 2.  You may be using third-party disk-partitioning software. If you are using
echo this type of software, remove the Emergency Boot Disk and restart your
echo computer. Then, follow the on-screen instructions to start your computer from
echo a floppy disk.
echo .
echo 3.  Some viruses also cause your drive C to not register. You can use a virus
echo scanning program to check your computer for viruses.
echo.
goto success

:no_ramdrive
echo The Windows 98 startup disk could not create a temporary drive for the
echo diagnostic tools. This may be because this computer has less than the  
echo minimum required extended memory.  
echo.
:success
------------------------------

2006-6-2 22:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tsenix
初级用户





积分 121
发帖 61
注册 2006-4-18
来自 HK
状态 离线
『第 6 楼』:  

启动盘的物理格式是什么? 软盘或是光盘?

2006-6-2 23:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 7 楼』:  

EXTRACT命令在一些情况下需要临时用于解压的硬盘空间。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2006-6-2 23:38
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
zjnbwdj
中级用户




积分 300
发帖 137
注册 2005-11-4
状态 离线
『第 8 楼』:  

这还不是AUTOEXEC.BAT的事?问题就在于
set temp=c:\
set tmp=c:\
压缩率大的时候,解压时产生的临时文件存放路径指向了你所谓的"问题硬盘"C:\,当硬盘未格式化,分区表错误,或者在卸下硬盘而虚拟盘又过于小的情况下,就会出现此类问题.

2006-6-3 01:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bc12060101
银牌会员





积分 1455
发帖 712
注册 2006-1-20
状态 离线
『第 9 楼』:  

to 7楼&8楼:
谢两位仁兄指点!
请问EXTRACT命令在何种情况下“需要临时用于解压的硬盘空间”,若如8楼老兄所言“压缩率大的时候,............”,那么又是什么在检测文件的压缩比率并将解压路径指向temp?是EXTRACT吗?
zjnbwdj兄,兄弟不才,对于AUTOEXEC.BAT中的 set temp=c:\  及 set tmp=c:\  一直不解,经您指点,好像离明白已经不远了。

to 6楼老兄:
软盘及光盘均存在此问题!

[ Last edited by bc12060101 on 2006-6-3 at 10:34 ]

2006-6-3 10:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 10 楼』:  

如果将
set temp=c:\
set tmp=c:\
改为
set temp=%RAMD%
set tmp=%RAMD%
就会与硬盘无关了!
当然内存盘就要加大容量!



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-6-3 19:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bc12060101
银牌会员





积分 1455
发帖 712
注册 2006-1-20
状态 离线
『第 11 楼』:  

嘿嘿,谢qwe1234567版主!又学了一招。
其实,如若不想与硬盘有关联的话,除了您介绍的方法外,适当控制压缩文件的压缩率即可(虽然,这个方法仅仅是试出来的,还有待理论上的支持) 。
之所以提出“解压文件到虚拟内存盘关硬盘么事”的问题,是想求解到底是什么在监控压缩文件的压缩率及其解压过程?是EXTRACT吗?如果是的话,不用EXTRACT是否就可以最大限度的压缩文件了?
还望大侠们继续点拨。

2006-6-3 20:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bc12060101
银牌会员





积分 1455
发帖 712
注册 2006-1-20
状态 离线
『第 12 楼』:  

顶一下!
请大侠们不吝赐教!
到底是什么在监控压缩文件的压缩率及其解压过程?是EXTRACT吗?若是的话,那么EXTRACT命令在何种情况下需要临时使用硬盘空间以用于解压?

2006-6-5 15:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 13 楼』:  

如果是自解压的话就可以不要任何的盘做临时文件和文件夹了!
“解压文件到虚拟内存盘关硬盘么事”是因为EXTRACT在解压时需要临时文件和临时文件夹!



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-6-6 07:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bc12060101
银牌会员





积分 1455
发帖 712
注册 2006-1-20
状态 离线
『第 14 楼』:  

qwe1234567版主 !
您介绍的两种方法都能很好的解决“关硬盘的事”的问题,非常感谢!

作为一个已经发生的问题,我很想搞清其原委,是故才不断的“纠缠”于.cab压缩格式及是何、为何“关硬盘的事”?但愿没有使您很烦。嘿嘿

从您及其他大侠的解说中我已知道EXTRACT在解压时需要临时文件和临时文件夹!但我还知道当压缩率较小时解压不“关硬盘的事”!有鉴于此,才产生了EXTRACT究竟是否存在监测.cab压缩文件压缩率的问题!换句话讲就是EXTRACT是否仅当压缩率大时才需借用临时文件夹、而压缩率小时则不必借用临时文件夹。因为从表象可以看到的确存在不同的压缩率其解压过程不同(压缩率大的文件解压时才“关硬盘的事”)。

上述问题的答案似乎是肯定的,但兄弟才疏学浅,是故恳请您及各位大侠予以明示。

2006-6-6 11:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 15 楼』:  

这个就不清楚了,我还没有遇到压缩率小时不必借用临时文件(夹)的事,无法给你解答!



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-6-6 11:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: