如何在powershell中高效地生成多个替换命令
我可以看出多次使用如何在powershell中高效地生成多个替换命令,powershell,Powershell,我可以看出多次使用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_vaer
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
我希望我解释得足够好,如果你有什么不明白的地方,就写下来,然后我会尽力澄清
顺便说一句,有人知道如何使其区分大小写,比如AE=Æ而不是æ吗?操作一次替换,您只需使用
获取/设置内容一次:
(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
相同,但使用backtick在多行上拆分命令以使其更具可读性:
(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$}
什么??我发誓我昨天试过了??我一定是拼错了什么…:(很抱歉,这可能造成了一个不寻常的结果……当您在这方面工作了一段时间后,很容易错过一些东西:)对于PowerShell开发人员来说,在简单的语法问题上陷入困境是一种通行权+1对于反勾号,它们大大提高了清晰度!顺便说一句,你知道如何使它的大小写敏感,像AE=Æ而不是æ吗?-creplace
是大小写敏感的版本。