2013-04-03 10 views
7

कमांड मैं फ्लैश ड्राइव को मिटा/शून्य करने और इसे दोबारा सुधारने के लिए एक सरल बैच स्क्रिप्ट बनाने की कोशिश कर रहा हूं। यह दूसरों के लिए है, इसलिए मैं इसे अपेक्षाकृत सुरक्षित बनाने का प्रयास कर रहा हूं, सी :, डी :, आदि 0 को प्रारूपित करने से रोक रहा हूं।बैच स्क्रिप्ट अगर अन्यथा

मैं एक आईएफ ईएलएसई प्रकार कमांड की तलाश में हूं, जिसका उपयोग मैं त्रुटि पकड़ने के लिए कर सकता हूं -सब।

यहाँ (के मुख्य भाग) है मैं क्या एटीएम

: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. 

अब मुझे पता है कि

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

मान्य सिंटैक्स नहीं है, लेकिन मैं आदेश में एक ही लक्ष्य को प्राप्त करने में क्या इस्तेमाल कर सकते हैं ? मुझे पता है कि ऐसा करने के लिए एक और अधिक प्रभावशाली तरीका है (उदाहरण के लिए संभावित ड्राइव अक्षरों के लिए 4 चर परिभाषित करने के बजाय, एक एकल चर डालें जो उपयोगकर्ता इनपुट को सुनता है और यदि यह मौजूद है तो इसे स्वीकार करता है।)

यह मेरा पहला प्रयास है बैच स्क्रिप्टिंग (और सामान्य रूप से स्क्रिप्टिंग) और मैं ऑन-द-फ्लाई सीख रहा हूं, इसलिए "डम्बर" आप इसे बेहतर बना सकते हैं।

अग्रिम धन्यवाद।

+0

आप भी अपनी गूंज आदेश में कोष्टक से बचने के लिए की जरूरत है। –

+0

इस कोष्ठक को कहां रखा जाना चाहिए? मैंने इसे "फ्लैश ड्राइव" के बाद रखा और कमांड लूप किया। – CharlieTango92

+0

आपके कोड में जहां इसमें इको ब्लाह की तरह कुछ है ... (कोई कॉलन नहीं) ... आपको ब्रैकेट से बचने की ज़रूरत है। मैं अपने फोन पर हूं ताकि आप मेरी समस्या देख सकें। –

उत्तर

13

इस प्रयास करें:

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 
) 
संबंधित मुद्दे