我可以看到自己多次使用get-content
命令是愚蠢的,有谁知道如何提高效率?
(Get-Content hvor_har_vi_vaeret_i_aar.html) -replace '"', '"' | set-
content hvor_har_vi_vaeret_i_aar.html
(Get-Content hvor_har_vi_vaeret_i_aar.html) -replace 'ae', 'æ' | set-content
hvor_har_vi_vaeret_i_aar.html
(Get-Content hvor_har_vi_vaeret_i_aar.html) -replace 'o/', 'ø' | set-content
hvor_har_vi_vaeret_i_aar.html
(Get-Content hvor_har_vi_vaeret_i_aar.html) -replace 'aa', 'å' | set-content
hvor_har_vi_vaeret_i_aar.html
我希望我能够很好地解释这一点,如果有什么你不明白然后只是写,那么我会试着澄清。
BTW有没有人知道如何使它区分大小写,如AE =Æ而不是æ?
行动替换一次你只需要使用Get/Set-Content
一次:
(Get-Content hvor_har_vi_vaeret_i_aar.html) -replace '"','"' -replace 'ae','æ' -replace 'o/','ø' -replace 'aa', 'å' | Set-Content hvor_har_vi_vaeret_i_aar.html
相同但使用反引号将命令拆分为多行以使其更具可读性:
(Get-Content hvor_har_vi_vaeret_i_aar.html) `
-replace '"','"' `
-replace 'ae','æ' `
-replace 'o/','ø' `
-replace 'aa', 'å' |
Set-Content hvor_har_vi_vaeret_i_aar.html
您可以使用的另一种方法,我个人更喜欢,因为它很容易让您将这些作为参数传递给函数,是声明一个2D数组并循环遍历它:
$string = 'abcdef'
$replaceArray = @(
@('a','1'),
@('b','2'),
@('c','3')
)
# =============
$replaceArray |
ForEach-Object {
$string = $string -replace $_[0],$_[1]
}
Write-Output $string
123def
如果您只想从字符串中删除项目,则更容易,因为您可以执行以下操作:'a','b','c' | % {$string = $string -replace $_}