我目前正在尝试在Windows之前启动的dos下执行批处理脚本
我试图加载包含引导扇区的img文件,从闪存盘引导到“可引导软盘”并执行名为installer.bat
的批处理文件
当批处理文件运行时,它应该要求技术人员验证驱动器号,然后批处理脚本将复制到名为xosl
的文件夹到该特定硬盘驱动器,即C:\xosl\
< / p>
这是我到目前为止所做的:
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:\>
它不是要我设置目录吗?
答案 0 :(得分: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%"
之类的每个变量周围添加引号。您可能只使用此"%D:~0,1%:"
获得第一个字母。
答案 1 :(得分: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
和.
之间没有空格)会给你一个空行
答案 2 :(得分: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