Замена строки в текстовом файле с пакетным - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь изменить некоторые .htm файлы, заменив Name1 Lastname1, Name2 Lastname2 на Name1 Lastname1.

Я нашел что-то здесь и изменил код для своих нужд:

REM @echo off
setlocal disableDelayedExpansion

:Variables
set "_strFind=Titel: Name1 Lastname1, Name2 Lastname2<br>"
set "_strInsert=Titel: Name1 Lastname1<br>"
set /p PC=PC?:
set /p Name=Name?:
set InputFile=\\%PC%\C$\Users\%username%\AppData\Roaming\Microsoft\Signatures\GR.htm
set OutputFile=\\%PC%\C$\Users\%username%\AppData\Roaming\Microsoft\Signatures\GR1.htm


:Replace
">"%OutputFile%" (
  for /f "usebackq delims=" %%A in ("%InputFile%") do (
    if "%%A" equ "%_strFind%" (echo %_strInsert%) else (echo %%A)
  )
)"

Это ничего не сделало; что я сделал не так? и как я могу найти ошибку?

EDIT01:

<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Arial",sans-serif'> John Doe GmbH<br> 
Blabla: John Doe, Johnny B.Good<br>
Bla bla bla<br>
Partner:<br>
Bla bla bla bla <o:p></o:p></span></p> 
</td>

И я хотел бы удалить , Johnny B.Good часть.

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Это ответ, который использует , () , длявыполнить задачу.

В этой версии вы заранее не знаете ни одного из Name1, Lastname1, Name2 или Lastname2;только Titel:, , и <br>.

@PowerShell -NoP "(GC 'input.htm' -Enc UTF8) -Replace '(Titel:[^,]*).+?(?=<br>)','$1'|SC 'output.htm' -Enc UTF8"

Вы бы просто изменили имя файла input .htm.Если у вас есть несколько htm файлов для изменения, вы, очевидно, можете запустить команду PowerShell в цикле над ними, которую я оставлю вам для самостоятельного кодирования.

0 голосов
/ 20 мая 2019

Поскольку .htm(l) файлы наиболее вероятно закодированы в UTF8, я бы даже не попробовал его с (чистым) пакетом.

Проверьте кодировку и попробуйте этот (непроверенный) пакет:

@Echo off
set "infile=GR.htm"
set "outfile=GR1.htm"
set "Replace=, Johnny B.Good"
set "Prefix=John Doe"
powershell -NoP -c "(Get-Content '%infile%' -raw -Enc UTF8) -replace '(?<=%Prefix%)%Replace%'|Set-Content '%outfile%' -Enc UTF8"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...