Как сделать команду замены powershell более понятной - PullRequest
0 голосов
/ 12 сентября 2018

Итак, у меня уже есть скрипт powershell.Однако, когда он заменяет то, что заменяет его, он делает ОДНУ линию.Это действительно неорганизованно.

Текущий сценарий

powershell -command "(Get-Content Contentlocation.html) -replace '</tr></table>', '<tr style=&quot;mso-yfti-irow:34&quot;><td valign=&quot;top&quot; style=&quot;width:180;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm&quot; height=&quot;5&quot;><font size=&quot;4&quot;>%Date%</font></td><td valign=&quot;top&quot; style=&quot;width:500;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm&quot; height=&quot;5&quot;><font size=&quot;4&quot;>%Location%</font></td><td valign=&quot;top&quot; style=&quot;width:523;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm&quot; height=&quot;5&quot;><font size=&quot;4&quot;>%Amount%</font></td></tr></table>' | Set-Content contentlocation.html"

Я бы хотел, чтобы это выглядело так.(в html документе)

 <tr style="mso-yfti-irow:34">
  <td valign="top" style="width:180;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5">
  <font size="4">DATE</font></td>
  <td valign="top" style="width:500;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5">
  <font size="4">LOCATION</font></td>
  <td valign="top" style="width:523;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5">
  <font size="4">AMOUNT</font></td>
 </tr>

А не так

 <tr style="mso-yfti-irow:34"><td valign="top" style="width:180;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5"><font size="4">DATE</font></td><td valign="top" style="width:500;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5"><font size="4">LOCATION</font></td><td valign="top" style="width:523;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5"><font size="4">AMOUNT</font></td>

Кто-нибудь знает, возможно ли это?Надеюсь, я объяснил это достаточно хорошо, если было что-то, чего вы не поняли, тогда просто пишите, тогда я постараюсь уточнить

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Если вы хотите сделать из него целый сценарий, вы можете предварительно определить переменную с помощью форматированного текста.

$html = '</tr></table>'

$replace = '
<tr style="mso-yfti-irow:34">
  <td valign="top" style="width:180;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5">
  <font size="4">DATE</font></td>
  <td valign="top" style="width:500;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5">
  <font size="4">LOCATION</font></td>
  <td valign="top" style="width:523;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5">
  <font size="4">AMOUNT</font></td>
</tr>'

$html -replace '</tr></table>', $replace

Редактировать

Вот полный рабочий пример:

$html = Get-Content 'Contentlocation.html'

$replace ='<tr style="mso-yfti-irow:34">
  <td valign="top" style="width:180;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5">
  <font size="4">DATE</font></td>
  <td valign="top" style="width:500;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5">
  <font size="4">LOCATION</font></td>
  <td valign="top" style="width:523;padding-left:3.5pt; padding-right:3.5pt; padding-top:0cm; padding-bottom:0cm" height="5">
  <font size="4">AMOUNT</font></td>
</tr>'

Set-Content -Path 'Contentlocation.html' -Value $html.Replace('</tr></table>', $replace)
0 голосов
/ 12 сентября 2018

вы ищете

`r`n
`r = Carriage return
`n = Line feed

поэтому

"</tr>`r`n</table>"

output
</tr>
</table>

Вы также можете использовать [System.Environment] :: NewLine

'</tr>'+ [System.Environment]::NewLine +'</table>'

output
</tr>
</table>

Вы также можете использовать символ новой строки в переменной

$n = [System.Environment]::NewLine
'</tr>'+ $n +'</table>'

output
</tr>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...