![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-18 04:38 |
共 47,814 主题排行 / 349,907 发帖 / 今日 4 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » 请教:解压文件到虚拟内存盘关硬盘么事? |
| 可打印版本 2,390 / 21 |
| 第1楼 bc12060101 | 发表于 2006-06-02 17:28 |
| 银牌会员 发帖 712 积分 1,455 | |
|
请教:解压文件到虚拟内存盘关硬盘么事? 列位看官及大侠:
在DOS下使用批处理命令将压缩的CAB文件解压到内存中虚拟的磁盘上时,与硬盘的状态(分区表错误、未格式化、非FAT32格式或无硬盘等等)有关系么? 问题的由来: 制作一启动盘,在硬盘为Fat32格式且已格式化状态下使用时,一切正常!但在摘除硬盘或硬盘未分区、未格式化、分区表错误等状态下,使用该启动盘可引导进入dos,虚拟内存盘也已建立,但本应在启动过程中解压到RAMD的文件(程序)未能解压。何解? 解压文件到内存还得看硬盘的脸色?又不是他(硬盘)家的地盘! 嘿嘿,不才困惑不已,还望各位点拨。 (可以肯定 autoexec.bat 文件绝无问题) |
|
| 第2楼 DOSforever | 发表于 2006-06-02 18:13 |
| 金牌会员 发帖 2,239 积分 4,639 | |
|
未能解压的具体提示是什么
|
|
| 第3楼 Scott0902 | 发表于 2006-06-02 18:56 |
| 中级用户 发帖 237 积分 466 | |
|
看看路径有没有指向C盘
在看看path变量 |
|
| 第4楼 不得不爱 | 发表于 2006-06-02 21:27 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
有些启动盘要那硬盘来保存临时文件!
|
|
| 第5楼 bc12060101 | 发表于 2006-06-02 22:40 |
| 银牌会员 发帖 712 积分 1,455 | |
|
首先感谢楼上三位大侠做答!
我前面已经申明, 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 ------------------------------ |
|
| 第6楼 tsenix | 发表于 2006-06-02 23:12 |
| 初级用户 发帖 61 积分 121 来自 HK | |
|
启动盘的物理格式是什么? 软盘或是光盘?
|
|
| 第7楼 Wengier | 发表于 2006-06-02 23:38 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
EXTRACT命令在一些情况下需要临时用于解压的硬盘空间。
|
|
| 第8楼 zjnbwdj | 发表于 2006-06-03 01:31 |
| 中级用户 发帖 137 积分 300 | |
|
这还不是AUTOEXEC.BAT的事?问题就在于
set temp=c:\ set tmp=c:\ 压缩率大的时候,解压时产生的临时文件存放路径指向了你所谓的"问题硬盘"C:\,当硬盘未格式化,分区表错误,或者在卸下硬盘而虚拟盘又过于小的情况下,就会出现此类问题. |
|
| 第9楼 bc12060101 | 发表于 2006-06-03 10:29 |
| 银牌会员 发帖 712 积分 1,455 | |
|
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 ] |
|
| 第10楼 不得不爱 | 发表于 2006-06-03 19:28 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
如果将
set temp=c:\ set tmp=c:\ 改为 set temp=%RAMD% set tmp=%RAMD% 就会与硬盘无关了! 当然内存盘就要加大容量! |
|
| 第11楼 bc12060101 | 发表于 2006-06-03 20:57 |
| 银牌会员 发帖 712 积分 1,455 | |
|
嘿嘿,谢qwe1234567版主!又学了一招。
其实,如若不想与硬盘有关联的话,除了您介绍的方法外,适当控制压缩文件的压缩率即可(虽然,这个方法仅仅是试出来的,还有待理论上的支持) 。 之所以提出“解压文件到虚拟内存盘关硬盘么事”的问题,是想求解到底是什么在监控压缩文件的压缩率及其解压过程?是EXTRACT吗?如果是的话,不用EXTRACT是否就可以最大限度的压缩文件了? 还望大侠们继续点拨。 |
|
| 第12楼 bc12060101 | 发表于 2006-06-05 15:44 |
| 银牌会员 发帖 712 积分 1,455 | |
|
顶一下!
请大侠们不吝赐教! 到底是什么在监控压缩文件的压缩率及其解压过程?是EXTRACT吗?若是的话,那么EXTRACT命令在何种情况下需要临时使用硬盘空间以用于解压? |
|
| 第13楼 不得不爱 | 发表于 2006-06-06 07:48 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
如果是自解压的话就可以不要任何的盘做临时文件和文件夹了!
“解压文件到虚拟内存盘关硬盘么事”是因为EXTRACT在解压时需要临时文件和临时文件夹! |
|
| 第14楼 bc12060101 | 发表于 2006-06-06 11:31 |
| 银牌会员 发帖 712 积分 1,455 | |
|
qwe1234567版主 !
您介绍的两种方法都能很好的解决“关硬盘的事”的问题,非常感谢! 作为一个已经发生的问题,我很想搞清其原委,是故才不断的“纠缠”于.cab压缩格式及是何、为何“关硬盘的事”?但愿没有使您很烦。嘿嘿 从您及其他大侠的解说中我已知道EXTRACT在解压时需要临时文件和临时文件夹!但我还知道当压缩率较小时解压不“关硬盘的事”!有鉴于此,才产生了EXTRACT究竟是否存在监测.cab压缩文件压缩率的问题!换句话讲就是EXTRACT是否仅当压缩率大时才需借用临时文件夹、而压缩率小时则不必借用临时文件夹。因为从表象可以看到的确存在不同的压缩率其解压过程不同(压缩率大的文件解压时才“关硬盘的事”)。 上述问题的答案似乎是肯定的,但兄弟才疏学浅,是故恳请您及各位大侠予以明示。 |
|
| 第15楼 不得不爱 | 发表于 2006-06-06 11:44 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
这个就不清楚了,我还没有遇到压缩率小时不必借用临时文件(夹)的事,无法给你解答!
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |