プログラム:コマンド プロンプト (CMD) バッチ スクリプト
たくさんのファイルでいっぱいのフォルダがあります。これらのファイル内には、他の雑多なメール アドレスが多数含まれています。テキストジャンク。これらの電子メール アドレスを各ファイルから抽出し、新しいファイル (.txt) を作成して、それぞれをできるだけ明確にリストする方法が必要です。
私はすでにまともな正規表現の「コード」を見つけるのに何時間も費やしました: " [.AZ-_] @[.AZ-_] "
この表現は、驚くべきことに、Google が検出できるこのトピックに関する唯一の他のフォーラム スレッドから派生したものです。そのスレッドはここにあります: https://stackoverflow.com/questions/7911482/extract-email-from-text-file-using-batch-job
そのスレッドで、Hand-E-Foodという名前の人が、選択したファイル/フォルダーから電子メール アドレスを抽出する以下の .bat スクリプトを作成しました。
@Echo Off
For /F "tokens=*" %%A In ('FindStr /R /I "[\.A-Z\-_]*@[\.A-Z\-_]*" "results.txt"') Do Call :ExtractEmail "%%A"
Exit /B
:ExtractEmail
Set "Email=%~1"
Set "Email=%Email:*<=%"
Set "Temp=%Email:*>=>%"
Call Set "Email=%%Email:%Temp%=%%"
Echo %Email%>emails.txt
Exit /B
驚くべきことに、彼は自分のコードを完全にエラー テストすることを怠り、悲しいことに、元の投稿者が言及したように機能しませんでした。腹立たしいことに、彼は自分の間違いを正すための返答をしなかったため、このトピックはクローズされました。
2011 年に答えられるべきだったのに、答えられなかったのと同じ質問をする新しいトピックです。したがって、非常に有用な能力であると私が考える、おそらくかなり単純なコードであると私が想像するものを誰かが助けることができる場合は、あなたの専門知識を私たちに貸してください.
PS Hand-E-Food のように、コードが機能することを再確認することを怠らないでください。また、私はコマンド プロンプトの経験が少しありますが、このスレッドを見る多くのユーザーはまったく経験がないため、コード内で何らかの表記を使用して、何が起こっているのかを少なくとも少し説明してください。
覚えておいてください: 私たちの誰も、私たちが今知っていることすべてを知っていませんでした。最初に学んだことを行う方法を完全に説明してくれたのは、親切な人々を通してのみでした. 十分に説明してください。
本当にありがとう、
ステップバイステップ