2013-04-03 4 views
7

Ich versuche, ein einfaches Batch-Skript zum Löschen/Nullstellen eines Flash-Laufwerks und Neuformatieren. Es ist für andere, also versuche ich es relativ sicher zu machen, indem ich die Formatierung auf C :, D: usw. sperre.Batch-Skript, wenn sonst Befehl

Ich suche nach einem IF ELSE Typ Befehl, den ich benutzen kann, um ein Fehler zu sein -alle.

Hier ist (der Hauptteil), was ich habe ATM

:again 
echo. 
cls 
echo. 
echo Please select the drive letter for the flash 
echo drive you wish to erase 
echo. 
echo **** DO NOT SELECT C: OR D: **** 
echo. 
echo. 
echo *** Enter letter (no colon) ONLY e.g. "E" *** 
echo. 
set /p answer= 
cls 
echo. 
echo. 
echo. 
if /i "%answer:~,1%" EQU "e" format E: /x /fs:FAT32 /v:FORENSICS /p:2 
if /i "%answer:~,1%" EQU "f" format F: /x /fs:FAT32 /v:FORENSICS /p:2 
if /i "%answer:~,1%" EQU "g" format G: /x /fs:FAT32 /v:FORENSICS /p:2 
if /i "%answer:~,1%" EQU "h" format H: /x /fs:FAT32 /v:FORENSICS /p:2 
if /i "%answer:~,1%" NOT exist goto again && echo Please provide a valid drive letter for flash drive 
echo. 

Jetzt weiß ich, dass

if /i "%answer:~,1%" NOT exist goto again && echo Please provide a valid drive letter for flash drive 

nicht gültige Syntax ist, aber was konnte ich, um das gleiche Ziel zu erreichen ? Ich weiß, dass es einen effektiveren Weg gibt, dies zu tun (zB anstatt 4 Variablen für wahrscheinliche Laufwerksbuchstaben zu definieren, setze eine einzelne Variable, die Benutzereingaben überwacht und akzeptiert, falls sie existiert.)

Dies ist mein erster Ausflug in Batch Scripting (und Scripting im Allgemeinen) und ich lerne on-the-fly, so dass die "Dümmer" Sie machen können, desto besser.

Vielen Dank im Voraus.

+0

Sie müssen auch die Klammer in Ihrem Echo-Befehl entkommen. –

+0

Wo muss diese Klammer platziert werden? Ich habe es nach "Flash-Laufwerk" platziert und den Befehl geloopt. – CharlieTango92

+0

In Ihrem Code, wo es etwas wie Echo blah ... (kein Doppelpunkt) hat ... müssen Sie die Klammern zu entkommen. Ich bin auf meinem Handy, damit Sie mein Problem sehen können. –

Antwort

13

Try this:

echo.%answer:~,1% | findstr /r /i "[e-h]" 
if %errorlevel% equ 0 (
    format %answer:~,1%: /x /fs:FAT32 /v:FORENSICS /p:2 
) else (
    echo Please provide a valid drive letter for flash drive. 
    goto again 
)