Board logo

标题: 求助,一个关于call调用批处理的问题 [打印本页]

作者: emote     时间: 2007-5-30 17:15    标题: 求助,一个关于call调用批处理的问题

在纯DOS下由a盘中的一个批处理文件用call 命令调用D盘指定目录下的另一个批处理文件,却提示“batch file missing”,这是什么原因?

例 a:\a.bat文件内容如下

call d:\sdfsd\b.bat

程序运行后出现:
batch file missing

而在上述提示下面跟着直接输入 b.bat ,b.bat就会开始被执行



另外想问一下,删除注册表中Runonce下面的某一值的批处理应该怎样写,谢谢!
作者: NaturalJ0     时间: 2007-5-30 17:17
b.bat 在哪儿呢?你当前目录是哪儿?
作者: emote     时间: 2007-5-30 17:28
b.bat在d:\sdfsd\下, 当前目录是在a:盘

就是奇怪调用不成,而在调用失败提示下直接输入b.bat又可以运行
作者: emote     时间: 2007-5-30 17:40
我原先的思路是这样的
--------------------------------------------------------------------------------------------------
在Windows下运行 a 目录中的 "创建.bat" 批处理,其内容如下:

echo @echo off >c:\load.bat
echo %~d0 >>c:\load.bat
set dp=%~sdp0
set dp=%dp:~0,-1%
echo cd %dp% >>c:\load.bat
echo a:\format c: /q/s/autotest >>c:\load.bat

----------------------------------------------------------------------------------------------------
系统重启并由A盘(镜像盘)引导进入纯DOS,A盘的autoexec.bat内容如下
smartdrv.exe
call c:\load.bat
Winnt.bat

问题: “Winnt.bat”与 "创建.bat" 都在同一目录中(a目录), 按道理在调用load.bat后,当前路径应该是a目录,接下来执行winnt.bat应该是没问题,但结果仍是格式化完系统后出现了 batch file missing 的提示,而在提示符下方直接输入 winnt 这个批处理又会被执行?
作者: emote     时间: 2007-5-30 17:54
有一点要说明的是 winnt.bat 不是普通的批处理文件,它的作用是调用其下一级目录中的windows安装程序和应答文件,其内容如下:

.\i386\winnt /s:.\i386 /u:.\i386\winnt.sif

我试过在纯DOS下直接运行winnt.bat可以启动安装程程,但是在批处理中用call 去调用它,却是无法执行,不知有什么办法可以解决?
作者: emote     时间: 2007-5-30 18:08
这里顺便问一下,一个批处理文件有多条命令,当批处理文件运行到中间时,该文件自身所在的盘被格式化,那么剩下的命令还会不会继续执行?
作者: huahua0919     时间: 2007-11-26 10:38
那系统一定会提示错错,找不到文件了