在 PowerShell 中更改错误消息语言

2024-07-01

我正在尝试在 powershell 中以英文显示错误,以便我可以更轻松地在线搜索它们。

当出现错误时,它会以法语显示,如下所示:

PS C:\Users\Olivier\lpthw> type nul > ex2.py
type : Impossible de trouver le chemin d'accès « C:\Users\Olivier\lpthw\nul », car il n'existe pas.
Au caractère Ligne:1 : 1
+ type nul > ex2.py
+ ~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Olivier\lpthw\nul:String) [Get-Content], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

PowerShell(核心)7+:

Execute [cultureinfo]::CurrentUICulture = 'en-US' (see System.Globalization.CultureInfo.CurrentUICulture https://learn.microsoft.com/en-US/dotnet/api/System.Globalization.CultureInfo.CurrentUICulture) 在您的会话中使 PowerShell 从那时起发出英文消息。

To preset it for all your PowerShell sessions, add the line to your $PROFILE file[1]. (See below for how to change the display language for your Windows sessions as a whole, invariably persistently.)

Caveat: As of v7.2.x, 只能说英语支持,因为 PowerShell 尚未本地化以 Windows PowerShell 的方式 - 跟踪进度GitHub 问题 #666 https://github.com/PowerShell/PowerShell/issues/666.

但是,一旦本地化完成,您就可以使用上述方法将会话切换为英语(或任何给定语言),即使您的系统上使用的是不同的 UI 语言(见下文)。


Windows PowerShell:

由于可以说是一个错误(已在 PowerShell Core 中修复),您无法直接在整个会话中“坚持”更改 UI 语言:

# !! Change of UI culture is effective only for a single command line
PS> [cultureinfo]::CurrentUICulture = 'en-US'; 1 / 0
Attempted to divide by zero.
...

(甚至添加[cultureinfo]::CurrentUICulture = 'en-US'给你的$PROFILE文件没有帮助。)

鉴于 Windows PowerShell 不再被积极开发,修复的可能性不大。

然而,有两个解决方法:

  • Either: Place this unsupported, but effective hack in your $PROFILE file[1], courtesy of this answer https://stackoverflow.com/a/59118816/45375 (streamlined):

    function Set-PowerShellUICulture { 
      param([Parameter(Mandatory)] [cultureinfo] $culture) 
    
      [System.Reflection.Assembly]::Load('System.Management.Automation').
        GetType('Microsoft.PowerShell.NativeCultureResolver').GetField('m_uiCulture', 'NonPublic, Static').
          SetValue($null, $culture)
    
    }
    
    # Example call: Set the UI culture to 'en-US' (US English)
    #               Use a value that `[cultureinfo]::new()` understands.
    Set-PowerShellUICulture en-US
    
    • Caveats:
      • This is 不支持的,因为它使用反射来调用非公开的类型。也就是说,鉴于 Windows PowerShell 不再处于积极开发状态,可以肯定的是,该黑客攻击将继续发挥作用。

      • 随着黑客攻击的生效,自动的$PSUICulture多变的 https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_Automatic_Variables#psuiculture does not反映有效的 UI 文化,因为它的值是在会话启动时静态确定的。然而,Get-UICulture https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/get-uiculture does.

      • 黑客确实not在 PowerShell (Core) 7+ 中工作,但您可以简单地放置[cultureinfo]::CurrentUICulture = 'en-US',如顶部所示,在您的$PROFILE.

  • Or: 更改 Windows 的显示语言作为一个整体,通过“设置”应用程序或Set-WinUILanguageOverride https://learn.microsoft.com/en-us/powershell/module/international/set-winuilanguageoverridecmdlet(Windows 8+/服务器 Windows 2012+);这样的改变是执着的 and 需要注销或重新启动.

    • Caveats:

      • 这意味着所有 GUI 元素(例如菜单)都将采用所选语言,跨all应用程序(支持本地化和所选语言)。

      • 另外,默认键盘布局将切换到所选语言。

      • 由于需要注销或重启,这种方法也不方便尝试不同的语言。


先决条件:无论当前的限制/错误如何,为了从根本上切换到不同的 UI 文化(显示语言)成为可能,它必须已经是已安装作为显示语言,通过“设置”应用程序(Settings > Time & Language > Language); with 美国英语 (en-US)这不是问题,因为它是随 Windows 预装的。


[1] The (current-user, current-host) profile file, whose full path is reflected in the automatic $PROFILE variable, may not yet exist on your system.
• To create it on demand, run if (-not (Test-Path $PROFILE)) { New-Item -Force $PROFILE }
• To edit it with Visual Studio Code, for instance, run code $PROFILE or, if no custom text editor is installed, use
notepad $PROFILE
Either way, if there's a chance that the file's content will (possibly over time) contain non-ASCII characters (e.g., é), be sure to save the file as UTF-8 with BOM, which works in both PowerShell (Core) 7+ and Windows PowerShell.
For more information, see the conceptual about_Profiles https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_Profiles help topic.

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

在 PowerShell 中更改错误消息语言 的相关文章

  • .NET 4.0 是否与 Windows XP SP2 或更低版本兼容? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我读过这里http www microsoft com downloads en details aspx FamilyID 5765
  • 为什么使用 Get-Variable 访问参数变量的属性仅在第一次在 ISE 中有效?

    感谢 StackOverflow 的优秀人员 我们获得了非常好的评价answer https stackoverflow com questions 42697072 find the values in validateset 42697
  • 如何更改按钮上的光标?

    static HWND btn HCURSOR cursor LoadCursor 0 IDC CROSS case WM CREATE btn CreateWindow TEXT BUTTON TEXT Press Me WS CHILD
  • 使用 Pester 5 和 PowerShell 7 模拟类函数

    有谁有使用 Pester 5 和 PowerShell 7 模拟点源类函数的示例吗 谢谢 编辑 示例 类 MyClass ps1 class MyClass void Run Write Host Class Invoking run 我的
  • 如何在 Windows 上以纯 PHP 形式提取 .tar 文件?

    我有一个 PHP 脚本 我想在 Windows 上运行 我需要提取 tar 文件 如何提取 tar 文件 我知道 PharData 类 它可以在 Linux 上运行 但不能在 Windows 上运行 我的脚本就死了 没有错误输出或任何东西
  • Windows 桌面应用程序中是否有 API 函数可以获取电池电量?

    我正在创建一个桌面应用程序 我想在其中获取设备 笔记本电脑 的电池电量 我为此使用 C 有什么方法可以帮助我做到这一点吗 我已经在 Windows Phone 8 平台上使用Windows Phone Devices Power Batte
  • powershell中的quser语言独立解析

    我想查询当前使用 powershell 登录到我的计算机的所有用户 我当前的解决方案如下所示 userObject quser server localhost 2 gt 1 ForEach Object Process replace s
  • PowerShell - 提示“您想继续吗”

    我有一个脚本用于自动化 WSUS 进程 它的最后阶段继续删除所有旧的 不必要的文件 对象 我想在清理阶段之前提示 按 输入 继续删除或按任何其他键停止 以便人们可以选择不运行它 我目前在脚本末尾的代码在这里 Get WsusServer 1
  • 通过单个命令行操作确定操作系统

    介绍 我有一个 神奇 工具 如果我提供 IP 它可以在机器上执行命令行操作 该工具知道机器正在使用的操作系统 并根据是否是windows linux在cmd shell上执行命令 并盲目返回命令的输出 C gt 工具 exe 172 140
  • powershell脚本创建Windows 10通知并在弹出后消失

    以下 powershell 脚本成功创建了一个通知 但在小弹出窗口收回后 它不会显示在通知中心上 有什么方法可以将其保留在通知中心直到用户关闭它吗 param String prodName Windows UI Notifications
  • 如何在 Windows 中使用 pypy 作为 CPython Jupyter 的内核?

    我使用以下命令安装了 pythonAnaconda 安装程序 http anaconda 20installer我很高兴使用它附带的 Jupyter 版本 我也下载了 32 位 windows 版本的 pypy https bitbucke
  • 如何等到我的批处理文件完成

    我正在做一个程序 我需要启动 cmd 并启动一个批处理文件 问题是我正在使用MyProcess WaithForexit 我认为它不会等到批处理文件处理完成 它只是等待 cmd 关闭 到目前为止我的代码 System Diagnostics
  • 如何区分 Windows 权限

    我对 Windows 权限有一个小问题 或者更确切地说 我正在尝试解决一个我认为与 Windows 权限有关的问题 并且想要比较和对比不同计算机上的权限 一台没有问题 一台没有问题 是的 有没有一个工具可以为我做到这一点 还是有一些我不知道
  • Java 1.6 和 Desktop.open() 的问题

    我一直在使用 Destop open 在 Windows 计算机 Vista 和 XP 上启动 pdf 查看器 并且大多数都工作得很好 但是 在一台 XP 计算机上 该调用不起作用 只是返回而不抛出任何异常 并且查看器不会启动 据我所知 在
  • 不使用控制台启动 java 程序

    我正在尝试将此 GUI mod 用于 Minecraft 服务器 我编写了一个批处理文件 以便服务器可以使用更多 RAM 启动 当我只运行 jar 文件时 不会打开任何命令窗口 并且运行得很好 当然 大约有 256mb 内存 我在网上读到
  • 有没有办法禁用 Windows 8 的手势

    我们的一个应用程序需要禁用 Windows 8 的一些内置手势 以防止用户离开该应用程序 想想自助服务终端登录屏幕 是否有方法仍然允许用户使用触摸与应用程序交互 但禁用 拦截一些内置手势 例如将应用程序停靠在左侧 转到桌面等 我们的备用解决
  • PowerShell - 正则表达式获取两个字符串之间的字符串

    我在正则表达式方面不是很有经验 你能告诉我如何从两个字符串之间获取字符串值吗 主题将始终采用以下格式 subject some other stuff 我需要找到之间的字符串 and 例如 完整字符串 Manhattan Project 输
  • 我可以使用什么脚本工具来自动测试 Delphi 程序? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个用于自动化测试的工具 我将使用脚本进行测试 而不仅仅是自动化 这意味着它不能只发送一些按
  • 如何在 gitlab-ci 共享运行器上使用自定义 Windows docker 容器

    我有一个包含以下两个文件的存储库 它构建一个安装了 Visual Studio buildtools 的 Windows docker 容器 并将其推送到 gitlab 为我的存储库提供的注册表 Dockerfile escape FROM
  • 通过 IIS 使用 GIT 智能 HTTP

    我最近读了 Scott Chacon 的文章 智能HTTP传输 http progit org 2010 03 04 smart http html 自那篇文章撰写以来 我希望通过 IIS windows 7 可以实现这一点 我还没有找到任

随机推荐

  • Android Fragment 后台事务

    我正在开发一个带有片段的应用程序 它有一个 JavaScript 接口 在主 Activity 中调用 并具有片段替换逻辑 当应用程序位于前台时 一切正常 但当应用程序位于后台时 片段事务替换不起作用 当我返回应用程序时 我仍然看到旧片段
  • 调用exe中定义的函数

    我需要知道一种从 python 脚本调用 exe 中定义的函数的方法 我知道如何从 py 文件调用整个 exe 除非您的 EXE 是 COM 对象 或者像 dll 那样专门导出某些函数 否则这是不可能的 对于 COM 方法 请查看以下资源
  • Elasticsearch 字段名称区分大小写

    我正在寻找有关 ElasticSearch 中字段名称区分大小写的建议和最佳实践 以及是否有全局配置来使字段名称不区分大小写 另外 如果映射中不存在 是否可以禁止 ES 添加不同的字段 这是一个例子来说明这一点 1 使用小写的一个字段 名称
  • Android 自定义进度条不旋转

    我想更改默认动画ProgressBar 所以我在我的主题中添加了自定义样式 样式 xml 我在我的内部调用这种风格ProgressBar具有以下内容 进度条 xml
  • 从 iso 货币符号获取 NativeEnglishName,而不依赖于登录用户的当前文化

    我所拥有的是货币IsoCode EUR 此属性也可以在 RegionInfo 类 gt ri ISOCurrencySymbol 但 RegionInfo 类取决于当前登录的用户 我想要的是获得像 Euro 这样的 NativeEnglis
  • 如何使用 awk 在文本文件的第一行之前添加一个空行

    我有一些文本文件 我想在每个文本文件的第一行之前添加一个空行 我怎样才能用 awk 做到这一点 我会比较喜欢GNU sed对于此任务 要在文件开头添加空格 sed 1s file txt 要使用以下命令对多个文本文件执行此操作 txt扩展名
  • @AfterReturning 方面在切入点方法的同一事务中执行?

    我需要在执行函数后执行任务 我为此使用了 Aspect 但我有些困惑 我在 Spring 服务中有一个函数 A Transactional readOnly false isolation Isolation DEFAULT propaga
  • 如何用PHP识别google/yahoo/msn的网络爬虫?

    AFAIK SERVER REMOTE HOST 应该以 google com 或 yahoo com 结尾 但这是最有保障的方法吗 还有其他出路吗 您通过以下方式识别搜索引擎用户代理和IP地址 http www jafsoft com s
  • 比较 UITextView 中的文本?

    我们如何比较输入的文本UITextVIew用代码中的默认文本来确定它们是否相同 您可以使用以下方法NSString http developer apple com library mac documentation Cocoa Refer
  • 比较断言中的函数输出类型

    我正在努力使用 chai mocha 和 JS DOM 编写测试断言 我有一个简单的函数 例如 function HtmlElement el this element el instanceof HTMLElement el docume
  • HTML/CSS:清除中间的浮动元素,而不添加不需要的标签[重复]

    这个问题在这里已经有答案了 大多数 ClearFix 技术都涉及在父容器的最底部添加内容 我最喜欢伪元素方法 因为它不会将不需要的元素添加到 HTML 中 然而 最近我发现我正在处理一个容器 其中有一些孩子漂浮 但不是全部 假设前 2 个子
  • 使用 Jackson 反序列化非字符串映射键

    我有一张如下所示的地图 public class VerbResult JsonProperty similarVerbs private Map
  • 以同样的方式根据编号对数组进行洗牌

    我正在运行一个测验制作网站 我希望以打乱的顺序向用户显示问题的答案 我试图avoid如果我要随机打乱答案 则存储向用户呈现答案的顺序 我想以可预测的方式打乱答案 这样我以后就可以用同样的方式重复随机播放 显示结果时 我认为我可以按某个数字对
  • 获取 ES6 符号的描述

    我想知道是否有一种很好的方法来获取符号的描述 例如 var s Symbol 5 toString 的默认实现将简单地打印 符号 5 我想找到一种方法来提取实际描述 即 5 Symbol description https develope
  • C# 如何更改 windows.forms.listview 中的网格线颜色

    如何更改 windows forms listview 中的网格线颜色 我认为没有办法在不覆盖 Paint Event 的情况下在列表视图上执行此操作 但是 如果您能够切换到网格视图 您可以这样做 this dataGridView1 Gr
  • 添加标签以绘制 R 中的特定值

    我使用以下数据集创建一个图 并且我想仅为 DisplayName 列中标有 T 的点添加标签 Probe Name DisplayName X Y bob1 A 0 53 989643 7935 185 bob2 B T 55 11423
  • Android:getIntent() 已弃用

    我的程序由一个 MainActivity 和两个片段活动组成 我需要一个片段从用户那里获取一个字符串值并将其传递给第二个片段 我正在努力思考如何做到这一点 由于我熟悉意图 我发现这个答案 https stackoverflow com qu
  • 使用多处理或线程加速单个任务

    是否可以使用多处理 线程来加速单个任务 我的直觉是答案是否定的 以下是我所说的 单一任务 的示例 for i in range max pick random choice on off both 当参数为 10000000 时 在我的系统
  • 配置 SourceTrail 以接受带有 @ 语法的嵌入式 c/c++ 头文件

    我正在尝试使用 Sourcetrail https www sourcetrail com https www sourcetrail com 快速了解 pic18 系列微控制器的一些旧嵌入式 c c 源代码 导入硬件包含文件时出现错误 该
  • 在 PowerShell 中更改错误消息语言

    我正在尝试在 powershell 中以英文显示错误 以便我可以更轻松地在线搜索它们 当出现错误时 它会以法语显示 如下所示 PS C Users Olivier lpthw gt type nul gt ex2 py type Impos