Jer*_*ton 5 powershell scripting ascii control-characters
我正在尝试编写一个脚本来搜索文件的内容,当它遇到一组ASCII控制字符时,插入一个CR/LF.
我要替换的字符模式是[ETX] [NUL] [STX] [ETX] [SOH]
$filenames = @(Get-Childitem "E:\VendorFiles\*") $CR = @("[char]3 [char]0 [char]2 [char]3 [char]1") foreach ($file in $filenames) {$outfile = "$file" + ".txt" Get-Content $file | Foreach-object { $_ -replace $CR,"`r`n" ` -replace [char]3,"|" ` -replace [char]1,"{" ` -replace "\\","\\" ` } | Set-Content -encoding "UTF8" $outfile}
这个表达式:
@("[char]3 [char]0 [char]2 [char]3 [char]1")
Run Code Online (Sandbox Code Playgroud)
...创建一个包含单个元素的数组.如果你真的想要一个包含5个项目的数组,但是无论如何都不支持数组,你需要在术语之间使用逗号.此外,您的单个元素包含您键入的文字字符; 不是你所期望的.-replace
你需要的是创建一个简单的字符串来提供-replace
; 当您处理不可打印的字符时,这会更复杂一些.你有正确的想法 - 你只需要告诉PowerShell使用$()
每个表达式上的符号在字符串中插入代码表达式:
$CR = "$([char]3)$([char]0)$([char]2)$([char]3)$([char]1)"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8540 次 |
最近记录: |