【问题标题】:Override Powershell > shortcut覆盖 Powershell > 快捷方式
【发布时间】:2015-11-30 08:44:34
【问题描述】:

在Powershell中使用>和使用| Out-File是一样的,所以我可以写

"something" > file.txt 它会将“某物”写入 file.txt 。这就是我对 shell 的期望。不幸的是,Powershell 使用 Unicode 来编写 file.txt。将其更改为 UTF-8 的唯一方法是编写相当长的命令:

"something" | Out-File file.txt -Encoding UTF8 

我想覆盖> 快捷方式,使其默认添加UTF-8 编码。有没有办法做到这一点?

不是重复的澄清:

这不是重复的。正如here 清楚解释的那样,Out-File 具有硬编码的默认值。我不想改变 Out-File 的行为,我想改变 > 的行为。

【问题讨论】:

  • 不,不是。请参阅说明。
  • @zmbq 根据文档,使用Out-File -Encoding 要走的路,你不能改变重定向操作符的行为

标签: powershell encoding utf-8


【解决方案1】:

不,做不到

甚至文档也提到了这一点。 来自Get-Help about_Redirection的最后一段:

当你 写入文件时,重定向操作符使用 Unicode 编码。如果 该文件具有不同的编码,输出可能未格式化 正确。 要将内容重定向到非 Unicode 文件,请使用 Out-File cmdlet 及其编码参数。

(强调)

【讨论】:

    【解决方案2】:

    changing the $OutputEncoding variable 可以覆盖输出编码。但是,这只适用于管道输出到可执行文件。它不适用于重定向运算符。如果您需要文件输出的特定编码,则必须使用 Out-FileSet-Content-Encoding 参数(或 StreamWriter)。

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 2017-09-01
      • 2011-04-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      相关资源
      最近更新 更多