0

我目前正在尝试在 Windows 之前启动的 dos 下执行批处理脚本

我试图加载包含引导扇区的 img 文件以从闪存盘引导到“可引导软盘”并执行一个名为installer.bat

当批处理文件运行时,它应该要求技术人员验证驱动器号,然后批处理脚本将复制一个名为xosl该特定硬盘驱动器的文件夹,即C:\xosl\

这是我到目前为止所拥有的:

echo OFF
CLS
:MENU
echo .
echo ...............................................
echo                 XOSL Installer
echo ...............................................
echo .

SET /P D=Enter drive letter such as (C:):

IF NOT EXIST %D% GOTO NOWINDIR
   mkdir %D%/xosl/
   xcopy /xosl/*.* %D%/xosl/
   cd %D%/xosl/
   START %D%/xosl/install.exe 
:NOWINDIR
   ECHO Drive does not exists
   GOTO MENU

问题是它一遍又一遍地迭代,这就是为什么我认为我在SET /P......我做错了什么?


更新:

这就是我得到的..

...............................................
                XOSL Installer
...............................................

Unable to create directory
Invalid directory
Invalid directory
Syntax Error
A:\>

它不是要我设置目录吗?

4

3 回答 3

1

缩进没有效果,所以之后START %D%/xosl/install.exe它会继续:NOWINDIR

您可能想要这样做:

echo OFF
CLS
:MENU
echo .
echo ...............................................
echo                 XOSL Installer
echo ...............................................
echo .

SET /P D=Enter drive letter such as (C:):

IF EXIST %D% (
   mkdir %D%/xosl/
   xcopy /xosl/*.* %D%/xosl/
   cd %D%/xosl/
   START %D%/xosl/install.exe 
) ELSE (
   ECHO Drive does not exists
   GOTO MENU
)

PS:尝试像这样在每个变量周围添加引号"%D%"。使用 this 可能只会得到第一个字母"%D:~0,1%:"

于 2010-09-22T09:54:36.013 回答
0

而不是这个:

echo OFF
CLS
:MENU
echo .
echo ...............................................
echo                 XOSL Installer
echo ...............................................
echo .

SET /P D=Enter drive letter such as (C:):

IF NOT EXIST %D% GOTO NOWINDIR
   mkdir %D%/xosl/
   xcopy /xosl/*.* %D%/xosl/
   cd %D%/xosl/
   START %D%/xosl/install.exe 
:NOWINDIR
   ECHO Drive does not exists
   GOTO MENU

尝试这个:

    echo OFF
CLS
:MENU
echo .
echo ...............................................
echo                 XOSL Installer
echo ...............................................
echo .

SET /P D=Enter drive letter such as (C:):

IF NOT EXIST %D% GOTO NOWINDIR
   mkdir %D%\xosl\
   xcopy \xosl\*.* %D%\xosl\
   cd %D%\xosl\
   START %D%\xosl\install.exe 
:NOWINDIR
   ECHO Drive does not exists
   GOTO MENU
于 2012-08-01T07:01:19.307 回答
0

您只需要一种方法在批处理文件工作时跳转到它的末尾,因为它只是运行并执行:NOWINDIR代码 - 尝试添加以下内容:

IF NOT EXIST %D% GOTO NOWINDIR
   mkdir %D%/xosl/
   xcopy /xosl/*.* %D%/xosl/
   cd %D%/xosl/
   START %D%/xosl/install.exe
   GOTO END
:NOWINDIR
   ECHO Drive does not exists
   GOTO MENU
:END


另外, (和echo.之间没有空格)会给你一个空行echo.

于 2010-09-22T09:55:06.247 回答