0

バッチ ファイルを実行すると、「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません」というエラーが表示されます。

バッチ ファイルは正常に実行されますが、このエラーが 25 回表示されてから処理が続行されます。ここで何が欠けているのかわかりません。以下は私のコードです:

::This batch file is used to set a static IP and launch Windows Recovery Environment

@setlocal enableextensions enabledelayedexpansion
@echo off

::Setting Static IP Address & DNS Address

netsh interface ipv4 set address "Local Area Connection" static 10.11.111.110 255.255.255.0 10.11.111.249 1

netsh interface ipv4 set dns "Local Area Connection" static 10.11.101.1 primary

::Verify Network Connection

:chklink

set ipaddr=10.11.107.20

set oldstate=neither

set state=down

for /f "tokens=5,7" %%a in ('ping -n 1 !ipaddr!') do (

    if "x%%a"=="xReceived" if "x%%b"=="x1," set state=up
)

if not !state!==!oldstate! (

    echo.Link is !state!

    set oldstate=!state!

)

REM ping -n 2 127.0.0.1 >nul: 2>nul:


SET answer=!state!

IF %answer%==up (

goto recovery


) ELSE (

IF %answer%==down (
::Set static address on NIC 2 if NIC 1 failed

netsh interface ipv4 set address "Local Area Connection 2" static 10.11.111.110 255.255.255.0 10.11.111.249 1

netsh interface ipv4 set dns "Local Area Connection 2" static 10.11.101.1 primary

goto chklink


)
)

::Launch Windows Recovery Environment

:recovery

cls

x:\sources\recovery\recenv.exe

exit

================================================== =========

どんな助けでも素晴らしいでしょう!

ありがとう!

デレク

4

1 に答える 1

1

コメントを取り出して、::コメントに置き換えてみてくださいrem。のような内部制御構造を使用する際に、過去に問題がありましたif

説明については、こちらを参照してください。実際、このサイト全体cmd.exeは、何らかの理由で CygWin のインストールを許可されていないスクリプト作成者にとって、信じられないほどのリソースです。

それができない場合は、をコメントアウトして@echo off、それらのエラーが表示されたときの動作を確認してください。

于 2011-02-17T14:45:23.037 に答える