无忧启动论坛

标题: 为什么批处理换个地方就能正常运行?有图和源码 [打印本页]

作者: ww111222    时间: 2007-8-22 23:15
标题: 为什么批处理换个地方就能正常运行?有图和源码
type install.bat

  Quote:
@echo on

rem 检测备份分区    设置Drive为备份分区盘符
SET Drive=null
for %%z in (w v u t s r q p o n m l k j i h g f e d c) do if exist %%z:\nul call FindDrv.BAT %%z

if %Drive%==null goto _exit_find
Echo 备份分区为:%drive%:

:_exit_find
echo 不存在备份分区,安装中止!
pause

type finddrv.bat

  Quote:
vol %1: |find "1KEYRESTORE"
if errorlevel 1 goto _exit
SET Drive=%1:
:_exit

我 用的 DOS7.1的启动盘, 并且 E盘 的卷标是:1keyrestore


hhwwll  制作的: 超级中文MS-DOS7.10启动盘

http://www.cn-dos.net/forum/viewthread.php?tid=17237&fpage=1



   我在autoexec.bat 里把 这两个文件都复制到 虚拟盘X盘上,结果 执行的时候提示:
Error matching string

  而所这两个 文件复制到 虚拟机上的 物理D盘上,就正常了,

这是为什么呢?


  下面是两图的对比

附件 1: 1key1.jpg (2007-8-22 11:11 PM, 36.7 K)


附件 2: 1key2.jpg (2007-8-22 11:11 PM, 31.44 K)



作者: Climbing    时间: 2007-8-23 17:11
1、搜索路径有问题,在搜索路径中找不到vol这个外部命令。

2、在X:\1KEY>目录下可能有一个错误的vol命令。

大概也就是这些原因了。
作者: 无翼鸟飞翔    时间: 2007-8-23 19:11
看起来。好像lz把vol放置在x盘根目录下。。
问下。你的复制命令是如何的。。看下AUTOEXEC.BAT的内容可以不
作者: ww111222    时间: 2007-8-23 20:28
谢谢两位 了,VOL 是DOS 的一个内部命令呀, 只是显示 一下 磁盘的卷标而已
作者: 无翼鸟飞翔    时间: 2007-8-23 21:55
vol是xp的内部命令。但是好像是dos的外部命令吧
作者: ww111222    时间: 2007-8-23 22:19
DOS的基本命令

DOS分内部和外部命令两大类。

一、内部命令:

内部命令——是指包含在DOS内部的命令,启动DOS时,内部命令已被装入内存,此后常驻内存,所以称为内部命令,内部命令由DOS的系统文件COMMAND.COM进行管理。

1、显示文件目录命令:DIR

2、建立子目录命令:MD

3、进入子目录命令:CD

4、退出子目录命令:CD..或CD\

CD..相对路径(一级一级退)

CD\绝对路径(一次退出)

5、文件删除命令:DEL

6、删除子目录命令:RD

7、显示文件内容:TYPE

8、文件换名命令:REN

9、文件复制:COPY

10、清除屏幕命令:CLS

12、显示和设置日期命令:DATE

13、显示和设置时间命令:TIME

14、显示DOS版本命令:VER

15、显示卷标命令:VOL

二、外部命令:

是指独立处于DOS之外的磁盘文件,启动DOS时外部命令没有被装入内存,它是在需要时,再从它们的磁盘上读到内存。执行一条外部命令时,必须将其读出,再加载到内存,所以应该给出该命令所在的位置(盘符、路径),以便于DOS在加载该命令时能够顺利查找到它。

1、显示目录结构命令:TREE /F

2、格式化磁盘命令:FORMAT /S /V /4

[/S]——顺便将启动系统程序卷拷贝到磁盘上,用来启动就是启动盘。

[/V]——顺便给磁盘取一个卷标,卷标必须在11个字符内。

[/4]——格式为40个磁道。

3、比较软盘命令:DISKCOPY

4、设置文件属性命令:ATTRIB [+-R、A、S、H]

+设置属性。

-消除属性。

R只读属性。

A保存属性。

S系统属性。

H隐藏属性。

5、复制子目录及其文件命令:XCOPY

6、反改磁盘卷标名称命令:LABEL

7、删除文件命令:DELTREE

8、恢复被删除的文件命令:UNDELETE

DOS快捷键

1、CTRL+Break或CTRL+C:结束当前的操作。

2、屏幕打印:CTRL+P使打印机联机,之后键入的命令或执行命令后的屏幕显示都在打印机上输出,再按下这两个键,打印机脱机。

3、CTRL+NUM LOCK或CTRL+S或Break暂停系统操作。

4、F1键按一次,将上次输入的命令或信息向右复制一个字符。

5、F3键按一次,是从当前字符起,将上次输入的命令或信息向右面剩余的文字全部复制出来。

6、EXIT  QUIT  退出命令。

7、MEM 内存

8、检查磁盘命令:CHKDSK

9、自动批处理文件:AUTOEXEC.BAT
作者: Climbing    时间: 2007-8-24 08:32
我确认了一下,VOL确实是内部命令,我使用的是DOS联盟论坛Wengier做的MS-DOS 7.10,在我的测试中,vol命令在任何状态下都可以正常显示磁盘的卷标。我也是在VM中进行测试的。
作者: Climbing    时间: 2007-8-24 08:34
楼主最好用手工输入命令的方式在X:\1KEY>下依次输入下列命令:
vol c:
vol e:
vol f:
vol c: | find /i "1key"
vol e: | find /i "1key"

看有没有什么区别。
作者: ww111222    时间: 2007-8-24 09:35
原帖由 Climbing 于 2007-8-24 08:32 AM 发表
我确认了一下,VOL确实是内部命令,我使用的是DOS联盟论坛Wengier做的MS-DOS 7.10,在我的测试中,vol命令在任何状态下都可以正常显示磁盘的卷标。我也是在VM中进行测试的。



  两个 MS-DOS 7.10 我都试过,都 一样

FIND.rar

5.65 KB, 下载次数: 44, 下载积分: 无忧币 -2


作者: Climbing    时间: 2007-8-24 10:44
单独执行VOL命令不加 | find的结果是什么样子的?
作者: ww111222    时间: 2007-8-24 21:57
今天无意中 发现了 问题,我居然有find.com 和 find.exe两个文件,用.exe就正常了


  谢谢大家了




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3