2017-07-27 70 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塊中的第二個echo正在破壞您的代碼。要修復它,請使用^來逃脫) s。

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 
)