Powershell:查找/替换 ASCII 控制字符的模式

2023-11-25

我正在尝试编写一个脚本来搜索文件的内容,并在遇到一组 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")

...创建一个array with a single元素。如果您确实想要 5 个项目的数组,则需要在术语之间使用逗号,但是-replace反正不支持数组。此外,您的单个元素包含literal您输入的字符;不是你所期望的。

您需要的是创建一个简单的字符串来提供-replace;当您处理不可打印的字符时,这会涉及更多一些。您的想法是正确的——您只需告诉 PowerShell 使用以下命令在字符串中插入代码表达式即可:$()每个表达式的符号:

$CR = "$([char]3)$([char]0)$([char]2)$([char]3)$([char]1)"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Powershell:查找/替换 ASCII 控制字符的模式 的相关文章

随机推荐

  • SQL Server 字符串与 Null 的连接

    我正在跨字段创建一个计算列 其中一些字段可能为空 问题是 如果这些字段中的任何一个为空 则整个计算列也将为空 我从 Microsoft 文档中了解到 这是预期的 可以通过设置 SET CONCAT NULL YIELDS NULL 关闭 但
  • C# 从 URI 字符串获取文件名

    我有这个方法可以从字符串 URI 中获取文件名 我能做些什么来使它更强大 private string GetFileName string hrefLink string parts hrefLink Split string fileN
  • 为什么 .* 不消耗此 Perl 正则表达式中的整个字符串?

    为什么第一个打印语句没有输出我期望的结果 first This is a test string sec This is a test string 由于 和 都是贪婪的 为什么第一个匹配中的内部 即 内部的 不消耗整个字符串 use st
  • “Decimal”类型的对象不可 JSON 序列化

    由于客户函数错误 Lambda 执行失败 状态为 200 Decimal 类型的对象不可 JSON 序列化 我在以下链接中浏览了所有现有的解决方案 但没有任何对我有用 我究竟做错了什么 Python JSON 序列化 Decimal 对象
  • python asyncio如何读取StdIn并写入StdOut?

    我需要异步读取 StdIn 以获取消息 由 r n 终止的 json 并在处理异步后将更新的消息写入 StdOut 目前我正在同步执行此操作 如下所示 class SyncIOStdInOut def write self payload
  • 在 Linux 上使用 mkdir 作为基于文件的锁定是一个好习惯吗?

    我想在 Linux 上的 perl 程序中快速实现某种锁定 它可以在不同进程之间共享 所以我用了mkdir作为原子操作 它返回1如果该目录不存在并且0如果是的话 我删除了关键部分之后的目录 现在 有人向我指出 这通常不是一个好的做法 独立于
  • Apple Watch OS 2 上是否可以在没有伴随声音的情况下触发触觉反馈

    假设用户没有将手表声音静音 Apple Watch 应用程序是否可以在没有伴随声音的情况下触发触觉反馈 即振动 这与接收由手表自动处理的通知不同 在本例中 我使用手表应用程序调用触觉反馈 像这样 WKInterfaceDevice curr
  • 在WebAPI中绑定抽象动作参数

    我遇到的情况是 我需要将传入的 HTTP POST 请求与正文中的数据绑定到具体类型 具体取决于ProductType数据中的分母 这是我的 Web API 2 操作方法 HttpPost Route public HttpResponse
  • Perl:为什么在循环内声明(我的)变量速度较慢?

    从口译员的视角来看 以下程序之间有什么区别 usr bin perl w use strict for 1 10000000 my jimmy 2 and usr bin perl w use strict my jimmy for 1 1
  • iOS 未收到通过 API 发送的 Firebase 推送通知

    我正在使用 Google 的 Firebase Cloud Messaging 将推送通知发送到我的 iOS 和 Android 应用程序 通过云消息控制台发送的推送通知按预期工作 但是当我通过 API 发送推送通知时 iOS 应用程序仅在
  • jquery:在图像后淡入淡出

    我有一个包含 10 张图像的页面 我想在图像下载后将它们逐个淡入淡出 如何检测图像已加载并准备好显示 我应该循环加载加载的图像 fadeIn 并一旦 fadeIn 等待下一个加载吗 只需在图像上使用 load 事件即可 例如 some im
  • 重写方法上的 Java Class.getMethods() 行为

    在使用 Java 反射编写一个简单的 JSON 序列化程序时 我对 Class getMethods 的行为感到措手不及 如果重写方法的返回类型扩展了被重写方法的返回类型 则 Java Class getMethods 似乎会返回重写方法和
  • 如何使用 Apache Batik 将一张 SVG 图像叠加到另一张 SVG 图像上?

    我有 2 个 SVG 文件需要使用 Batik 进行叠加 第一个文件用作背景图像 大小为 308 像素 x 308 像素 而第二个文件 260 像素 x 260 像素 是必须居中的前景图像 即位于背景图像的中心 我希望将操作结果保存在第三个
  • 为什么全局匿名联合需要声明为静态?

    C 0x 草案 9 5 6 在命名命名空间或全局命名空间中声明的匿名联合应声明为静态的 为什么是这样 假设匿名联合不需要声明为静态 并且编译器遇到这两个翻译单元 预处理后 File1 union int a char b Further c
  • Microsoft Visual Studio:opendir() 和 readdir(),如何实现?

    我之前在我的 Dev cpp 中使用过这种代码 if dh opendir folder false while file readdir dh false do my stuff closedir dh 但现在我正在使用 MSVC 我不知
  • CSS边框颜色分为4种颜色

    有什么方法可以让 CSS 边框的一侧有 4 种不同的颜色吗 我目前有 header border color 88a9eb 我想要有 4 种纯色边框 每种颜色有 25 的分割 这可能吗 我想制作一个完整的版本 中间没有白色的部分 您可以使用
  • 如何从另一个 job2 访问 Hudson job1 工件?

    我们在哈德逊的一个项目中有一份制作工作和一份夜间工作 生产作业需要从特定的夜间构建 作为参数提供 中提取一些工件 谁能帮助我们提示如何实现这一目标 The 复制神器插件似乎能够做到这一点 另一种方法可能是通过获取工件 http server
  • 在 Selenium Chrome 驱动程序中禁用缓存

    我使用 Selenium ChromeDriver 来测量网页的性能 但默认情况下 Chrome 驱动程序缓存是启用的 Option disable application cache现已弃用https code google com p
  • std::mutex 作为类成员,并将类对象存储到容器中

    下面是重现该错误的最少代码 include
  • Powershell:查找/替换 ASCII 控制字符的模式

    我正在尝试编写一个脚本来搜索文件的内容 并在遇到一组 ASCII 控制字符时插入 CR LF 我想替换的字符模式是 ETX NUL STX ETX SOH filenames Get Childitem E VendorFiles CR c