2017-07-27 10 views
0

これをバッチで実行すると、「この時点では予期しなかった」というエラーが表示されます。なぜですか?変数と変数の両方を囲む引用符があります。 Y、その後、括弧。(この時点で予期しなかったバッチ)

echo Would you like to update and restore to the latest OS? (-l -e) (Y/N) 

set /p latestOS= "" 

if "%latestOS%"=="y" (

echo Restoring...make sure your device is plugged in! 

\idevicerestore\idevicerestore -l -e 

echo Done. 

timeout /t 2 /nobreak > NUL 

) else (

    echo Okay. Where is the IPSW located? EX: C:\memez.ipsw 

    set /p IPSWlocid= "" 

    echo Alright. Is it a custom IPSW? Note that the device must be vulnerable to limera1n. (-c) (Y/N) 

    set /p IPSWiscustomid= "" 

    rem more stuff soon 

) 

:menu 

それがあればlatestOSラインで失敗した。

+0

Stilは失敗しましたが、後で別のエラーが発生しました。どうやら最初のエコーラインのかっこがそれを乱してしまったのです。ありがとう! – TheDankestOfMemes

答えて

0

あなたは(つまり、括弧の内部コードです)、コードブロックを持っている場合は、バッチは、最初のエスケープ)は関係なく、コードブロックに、それがどこにあるかの、そのブロックの終わりであると考えています。

elseブロック内の2番目のechoがコードを破っています。これを修正するには、^を使用して)の両方をエスケープします。

echo Alright. Is it a custom IPSW? Note that the device must be vulnerable to limera1n. (-c^) (Y/N^) 
+0

ありがとうございます。この方法が最も効果的でした;) – TheDankestOfMemes

0

あなたが引用されていない最初のecho文の括弧の使用を含むあなたのコードで問題のカップルを、持っていますまたはエスケープして、=の後にスペースを入れてset /p行にサインインしてください。あなたのコードはもっと簡単にすることができます。それに対処するつもりはありませんが、ここでは関連するいくつかの変更が役立ちます。

@echo off 
set /p latestOS="Would you like to update and restore to the latest OS? (-l -e) (Y/N): " 

if "%latestOS%"=="y" (
    echo You chose Yes 
) else (
    echo You chose No 
) 
関連する問題