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%"。これを使用すると、最初の文字だけを取得できます"%D:~0,1%:"

于 2010-09-22T09:54:36.013 に答える
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 に答える
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 に答える