2016-09-20 6 views
1

私は、ユーザーがスクリプトを実行する前に、自分のメールアドレスを入力するために取得したいと思い、私は以下のようにそれをやっている:私は@の、空白部分に存在することを確認することができていますし、上記のコードではバッチスクリプトでユーザー入力電子メール形式を検証する方法は?

​​

たとえユーザーがダミー[email protected]を入力したとしても、少なくとも7文字以上の電子メールを受け取ることができますが、@の前に何も入力しないで@を入力するだけの方法を確認する方法がわかりません。また、私は無効にするか、入力フィールドのユーザーのために "TAB"をサイレントにして、TABを使用できないようにします。

他の方法でこのメールフォーマット全体をチェックすることはできますか?あなたはこのソリューションを試すことができます

答えて

1

@echo off 
echo Type your e-mail address : 
Set /p "Email=" 
Call :CheckValidMail %Email% 
cls 
IF "%errorlevel%" EQU "0" ( 
    Color 0A 
    echo %Email% is valid 
) else (
    Color 0C 
    echo %Email% is not valid 
) 
pause & Exit 
::********************************************************************************* 
:CheckValidMail <Email> 
(
echo If IsValidEmail("%~1"^) = True Then 
echo Wscript.Quit(0^) 
echo Else 
echo Wscript.Quit(1^) 
echo End If 
echo Function IsValidEmail(strEAddress^) 
echo Dim objRegExpr 
echo Set objRegExpr = New RegExp 
echo objRegExpr.Pattern = "^[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[\w-\.]*[a-zA-Z0-9]\.[a-zA-Z]{2,7}$" 
echo objRegExpr.Global = True 
echo objRegExpr.IgnoreCase = False 
echo IsValidEmail = objRegExpr.Test(strEAddress^) 
echo Set objRegExpr = Nothing 
echo End Function 
)>"%tmp%\%~n0.vbs" 
Cscript /nologo "%tmp%\%~n0.vbs" 
Exit /b 
::********************************************************************************* 
+0

おかげで、よさそうです。それをテストします。これにはVBが入っているのではないかと疑問に思っています。特に、どのマシンでも作業したいので、このようなスクリプトを実行する可能性はありますか? – irish

+0

ありがとうございますこれはうまく動作します!あなたは私のクエリで私を助けてくれますか?「これにはVBがあるので疑問に思うのですが、特にそのマシンで作業したいので、このようなスクリプトを実行する可能性はありますか? – irish

+1

あなたはそれをどんな依存関係もなしにどんなマシンででもプレイできます:) – Hackoo

関連する問題