簡體   English   中英

如何使Powershell替換命令更容易理解

[英]How to make a powershell replacement command more understandable

所以我已經有了一個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>

有人知道這是否可能嗎? 我希望我已經解釋得足夠好了,如果有什么您不懂的就寫,然后我會盡力澄清

你在找

`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>

如果您願意編寫整個腳本,則可以使用格式化的文本預定義變量。

$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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM