2016-07-15 3 views
3

У меня есть текстовый файл, который содержит, помимо прочего, строки, начинающиеся с «Пароль:». То, что я хочу сделать, - запустить команду командной строки (если возможно), чтобы проанализировать файл .txt, чтобы извлечь все термины, которые следуют за «Пароль:», и поместить их в новый текстовый файл, перечисляющий исключительно пароли. Количество пробелов между словом «Пароль:» и фактическим паролем изменяется в записях.Командная строка 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», но, как сказано, мне нужно что-то там, чтобы удалить строку «Пароль:» из каждой строки.

Любые предложения? Спасибо

+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

Perfect. благодаря – thefragileomen

Смежные вопросы