如何防止将转义序列添加到 PowerShell 输出中?

2024-02-15

我没想到或不希望输出中出现转义序列。第一行输出是:

00000000000000001B 5B 33 32 3B 31 6D4C 6F 63 61 6C 41 64 64 72�[32;1m本地地址

PS C:\src\t> Get-NetTCPConnection | Where-Object { $_.State -eq 'Established' } | Out-File -FilePath '.\task3.txt' -Encoding ascii
PS C:\src\t> Get-Content .\task3.txt -first 2 | Format-Hex

   Label: String (System.String) <5F8755A9>

          Offset Bytes                                           Ascii
                 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
          ------ ----------------------------------------------- -----
0000000000000000 1B 5B 33 32 3B 31 6D 4C 6F 63 61 6C 41 64 64 72 �[32;1mLocalAddr
0000000000000010 65 73 73 20 20 20 20 20 20 20 20 20 20 20 20 20 ess
0000000000000020 20 20 20 20 20 20 20 20 20 20 20 4C 6F 63 61 6C            Local
0000000000000030 50 6F 72 74 20 52 65 6D 6F 74 65 41 64 64 72 65 Port RemoteAddre
0000000000000040 73 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ss
0000000000000050 20 20 20 20 20 20 20 20 20 52 65 6D 6F 74 65 50          RemoteP
0000000000000060 6F 72 74 20 53 74 61 74 65 20 20 20 20 20 20 20 ort State
0000000000000070 41 70 70 6C 69 65 64 53 65 74 74 69 6E 67 20 4F AppliedSetting O
0000000000000080 77 6E 69 6E 67 50 72 6F 63 65 73 73 1B 5B 30 6D wningProcess**�[0m**

我注意到它没有出现在 Get-ChildItem 的输出中。

PS C:\src\t> dir *.g* | Out-File -FilePath '.\task5.txt' -Encoding ascii
PS C:\src\t> Get-Content -Path '.\task5.txt' -First 2 | Format-Hex

   Label: String (System.String) <5A0214B6>

          Offset Bytes                                           Ascii
                 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
          ------ ----------------------------------------------- -----
0000000000000000 20 20 20 20 44 69 72 65 63 74 6F 72 79 3A 20 43     Directory: C
0000000000000010 3A 5C 73 72 63 5C 74                            :\src\t

汤姆的有用回答 https://stackoverflow.com/a/71199341/45375提出了一个重要的观点:Out-*cmdlet 旨在用于人的眼球, 不是为了程序化处理.

抛开这一点:

事实是ANSI / 虚拟终端转义序列 https://en.wikipedia.org/wiki/ANSI_escape_code- 用于生产colored在这种情况下的输出 - 出现在输出文件中意味着您正在使用PowerShell(核心)7.2+,其中的值$PSStyle.OutputRendering https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_Automatic_Variables#psstyle确定这些转义序列是否是retained在输出中 - 隐式或显式 - 调用Out-*cmdlet:

  • Use $PSStyle.OutputRendering = 'Host'限制在格式化输出中使用转义序列以将输出发送到display(主机/控制台/终端),并进行所有其他用途 - 发送输出到一个文件>(实际上是Out-File) or 通过管道- 导致删除这些转义序列以产生纯文本 output.

    • Add $PSStyle.OutputRendering = 'Host'给你的$PROFILE file https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_Profiles使此行为成为未来会话的默认行为。
  • 遗憾的是,从 PowerShell 7.2.1 开始,default的价值$PSStyle.OutputRendering is 'Ansi', which 无条件地在格式化输出中包含转义序列。

    • 'Host'将产生更明智的默认值,与类 Unix 平台上的 CLI 所表现出的行为一致,当它们的 stdout 输出未连接到terminal- 除非明确要求包含它们,并带有诸如--color=always
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止将转义序列添加到 PowerShell 输出中? 的相关文章

随机推荐

  • ggplot2scale_x_连续限制或绝对

    我在循环中使用以下 ggplot2 v0 9 scale x continious 逻辑 按县名称 试图将每个县的数据绘制在具有相同 x 比例的单独图上 MaxDays 365 3 p lt p scale x continuous lim
  • 如何强制 IntelliJ 使用 Maven 下载 javadocs?

    我对项目结构中的一些 Maven 条目有以下描述 文件系统中确实不存在 Javadoc 文件 同时 它存在于中央存储库中 为什么没有下载 如何强制下载 UPDATE 这些选项已经开启 设置后尝试重新编译 关闭 打开等 单击IntelliJ右
  • ARM 皮质:使用位带的互斥体

    鉴于此 在 ARM Cortex M3 上 我可以 原子地读取一位 原子地设置一位 原子地清除一位 如何将这些组合起来形成互斥体样式的操作集 try lock take lock release lock 看起来try lock or ta
  • python 中使用 pandas dataframe 和 statsmodels 或 scipy 进行方差分析?

    我想使用 Pandas 数据框来分解一个变量的方差 例如 如果我有一个名为 度 的列 并且我已针对各种日期 城市以及夜间与白天对其进行了索引 那么我想找出该系列中的变化中有多少部分来自横截面城市变化 有多少来自时间序列变化 有多少来自夜间与
  • CSS:#id .class VS .class 性能。哪个更好?

    我认为这会更快 dialog videoContainer width 100px than videoContainer width 100px 当然不考虑这一点 videoContainer在第一个示例中 只会在以下样式下设置样式 di
  • 非空终止字符数组

    include
  • 使用带有导航器的滑动菜单的 Onsen-UI

    好的 问题是我有一个带页面的工作滑动菜单 现在我的一个页面有一个 ons list 通过单击ons list item 我想导航到带有后退按钮的新页面 我到处搜索但没有找到解决我的问题的任何正确方法 这是我的代码
  • 在集合视图中显示两个不同的单元格 - Swift 2.0 iOS

    我正在开发一个 交易 应用程序 我希望拥有静态数量的单元格 加载时 用户将看到 5 个单元格 每个单元格都显示一个标有 添加 的标签 当添加 玩家 时 该单元格显示玩家信息 其他 4 个单元格仍然显示 添加 标签 另一个是添加的 2个单元格
  • 从node js到django的csrf问题

    我想将 csrftoken 从 node js 传递到 django 我的 server js 中有这段代码 socket on unread global function data var values querystring stri
  • LINQ to SQL 谓词生成器

    我使用 PredicateBuilder 如下所示http www albahari com nutshell predicatebuilder aspx http www albahari com nutshell predicatebu
  • Python Selenium 打印文本字段的值显示为空。该值未打印

    我正在尝试将文本字段的值打印到控制台 该网页的文本字段中的值为 1 000 000 1 000 000 应该打印 但我的方法是打印空白 我正在使用 Python Webdriver 我正在使用 text 它应该获取文本字段的文本值 我的方法
  • 初始化并声明为“extern”,为什么我看到下面的警告? [复制]

    这个问题在这里已经有答案了 为什么我会看到以下警告 警告 i 已初始化并声明为 extern include
  • 使用 renderUI 在 ShinyR 中创建选项卡时如何在不同对象中重用数据集

    我开发了一个闪亮的应用程序 在不同的选项卡下包含几个绘图和数据 选项卡是使用另一个参数动态创建的 但每次我都必须对数据进行子集化以准备绘图 假设使用 mpg 子集数据 我在 mpg 选项卡中绘制了两种不同类型的图表 并且我不想在绘制绘图时每
  • 在美味派视图中暴露“虚拟”字段?

    我想使用 tastypie 创建一个视图来公开相同类型的某些对象 但具有以下 two 三个变化 我需要使用三个单独的查询来获取对象 我需要添加一个底层模型中不存在的字段 该字段的值取决于它来自哪个查询 和 数据将是每个用户的 因此我需要连接
  • wix 在 Windows XP 上安装期间使用了不正确的字体

    在基本安装模式 msiexe i MyInstaller msi qb 期间 我在 MSI 进度对话框中看到的是方框而不是字符 有没有办法更改 基本 MSI 对话框中使用的字体 TTF FontFace 1 微星日志 MSI c A4 EC
  • Pandas 相当于 SQL 中的 GROUP BY HAVING

    在 pandas 中使用 groupby 并并行应用过滤器的最有效方法是什么 基本上我要求 SQL 中的等效项 select group by col name having condition 我认为有很多用例 包括条件均值 总和 条件概
  • Keras 中输入数据的标准化

    深度学习中的一项常见任务是将输入样本标准化为零均值和单位方差 人们可以使用如下代码 手动 执行规范化 mean np mean X axis 0 std np std X axis 0 X x mean std for x in X 然而
  • 如何调整现有 pdf 页面大小 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在应用程序中 用户可以上传任何尺寸为 8 46 x 10 97 的 pdf 文件 根据我们的应用尺寸应为 8 5 x 11 问题是 如何重
  • 在 Google 可视化折线图中创建可点击元素

    是否可以将 onclick 方法附加到 Google 可视化折线图中的元素 例如 如果用户单击图表中的点 我想将用户发送到包含更多详细信息的页面 我已经浏览了所有文档 但找不到如何执行此操作的示例 我看到有一些事件方法 来自文档 http
  • 如何防止将转义序列添加到 PowerShell 输出中?

    我没想到或不希望输出中出现转义序列 第一行输出是 00000000000000001B 5B 33 32 3B 31 6D4C 6F 63 61 6C 41 64 64 72 32 1m本地地址 PS C src t gt Get NetT