2016-07-15 6 views
3

私は、他の情報の中に 'Password:'で始まる行を含むテキストファイルを持っています。私が探しているのは、コマンドラインコマンド(可能な場合)を実行して.txtファイルを解析し、 'Password:'に続くすべての用語を抽出し、それらをパスワードだけを記載した新しいテキストファイルに配置することです。単語「Password:」と実際のパスワードとの間のスペースの数は、項目によって異なります。テキストファイルの情報を解析するためのWindowsコマンドライン

私は、これまで使用してきた:

FINDSTR /L "Password: " input_file.txt > output_file.txt 

これはうまく動作しますが、長期的「パスワード:」を抽出し、あまりにも。私が行った研究から、コマンドラインに.txtファイルから文字列を削除する組み込み関数があるとは思わない。私の考えは上記のコマンドに続いて、次のようなコマンドを実行することである: -

FINDSTR /L "Password: " input_file.txt > output_file.txt & DELSTR "Password: " output_file.txt > final_file.txt & DEL output_file.txt 

明らかに私は 'DELSTR'を発明しましたが、言われたように、各行から文字列 'Password:'を削除するために何かが必要になります。

提案がありますか?ありがとう

+1

1)は、コード2を書き込み(複数存在する場合のコードは、すべてのパスワードを印刷するには、編集) )コード3)デバッグコードを実行します。私たちは#3を手助けし、#1-2はしません。それがあなたの仕事です。 –

+0

@MarcB申し訳ありません。追加情報は申し訳ありません。 – thefragileomen

+0

ええ、文字列処理機能がcmd.exeに組み込まれています。http://superuser.com/questions/228794/how-to-extract-part-of-a-string-in-windows-batch-file –

答えて

3

実際、文字列操作のためのいくつかの(非常に限定された)組み込み関数があります。詳細は、set /?を参照してください。
の一時ファイルを操作する必要はありません、あなたは変数に直接文字列を解析することができます

setlocal enabledelayedexpansion 
for /f "delims=" %%a in ('findstr /b /c:"Password: " input_file.txt') do (
    set pwd=%%a 
    set "pwd=!pwd:Password: =!" 
    echo !pwd!>>final_file.txt 
) 
+0

これは本当にありがとうございます。すべてのパスワードではなく、最後のパスワードエントリをfinal_file.txtに書き込むように見えるだけです。助言がありますか? – thefragileomen

+0

easy:ループを展開するだけです。私の編集を参照してください。 – Stephan

+0

パーフェクト。ありがとう – thefragileomen

関連する問題