2013-04-03 13 views
7

Próbuję zrobić prosty skrypt wsadowy do wymazywania/zerowania dysku flash i formatowania go. To jest dla innych, więc próbuję uczynić go względnie bezpiecznym, blokując formatowanie do C :, D :, itd.Skrypt wsadowy, jeśli jeszcze komenda

Poszukuję polecenia typu IF ELSE, którego mogę użyć, aby złapać błąd -wszystko.

Oto (główna część), co mam 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. 

Teraz wiem, że

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

nie jest prawidłowa składnia, ale co mogę używać, aby osiągnąć ten sam cel ? Wiem, że jest na to skuteczniejszy sposób (np. Zamiast definiowania 4 zmiennych dla prawdopodobnych liter dysków, umieść pojedynczą zmienną, która nasłuchuje danych wprowadzanych przez użytkownika i akceptuje go, jeśli istnieje).

To jest mój pierwszy wypad w skryptów wsadowych (i ogólnie skryptów) i uczę się "w locie", więc "głupszy", że możesz to zrobić, tym lepiej.

Z góry dziękuję.

+0

Należy również uciec nawias w swojej komendzie echa. –

+0

gdzie należy umieścić ten nawias? Umieściłem go po "napędzie flash" i polecenie zapętlono. – CharlieTango92

+0

W twoim kodzie, gdzie ma coś takiego jak echo bla ... (bez dwukropka) ... musisz uciec z nawiasami. Jestem na moim telefonie, więc widzisz mój problem. –

Odpowiedz

13

Spróbuj tego:

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 
) 
Powiązane problemy