2016-07-15 1 views
3

다른 정보 중에서 'Password :'로 시작하는 줄이 포함 된 텍스트 파일이 있습니다. 내가 원하는 것은 명령 줄 명령 (가능한 경우)을 실행하여 .txt 파일을 구문 분석하여 'Password :'다음에 오는 모든 용어를 추출하고이를 암호 만 나열된 새 텍스트 파일에 배치하는 것입니다. 'Password :'단어와 실제 암호 사이의 공백 수는 항목에 따라 다릅니다.텍스트 파일의 정보를 구문 분석하는 Windows 명령 줄

은 내가 지금까지 사용하고 있습니다 :

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

이 잘 작동하지만 용어 '비밀번호'추출 너무. 필자가 수행 한 연구에서 Command Line에 .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

쉬움 : 그냥 루프를 확장하십시오. 내 편집을 참조하십시오. – Stephan

+0

완벽. 감사 – thefragileomen

관련 문제