hi.txt echo "hello world" | Set-Content hi.txt 并没有做完全相同的工作。我创建了一个简单的脚本,-6ren">
gpt4 book ai didi

powershell -> 运算符和 Set-Content cmdlet 之间有什么区别

转载 作者:行者123 更新时间:2023-12-02 15:54:21 24 4
gpt4 key购买 nike

我发现这两行:

echo "hello world" > hi.txt
echo "hello world" | Set-Content hi.txt

并没有做完全相同的工作。我创建了一个简单的脚本,它替换配置文件中某些值的内容并存储它(使用>),但这似乎以某种奇怪的格式存储文件。标准 Windows 文本编辑器确实可以正常看到该文件,但是应该加载该文件的 IDE(它是项目的配置文件)无法读取它(我认为它使用了一些额外的编码或其他编码)。

但是,当我用 Set-Content 替换它时,它工作正常。

这些命令的默认行为是什么,Set-Content 有何不同之处,以便它可以在其中工作?

最佳答案

区别在于使用的默认编码。来自 MSDN ,我们可以看到 Set-Content 默认为 ASCII 编码,大多数程序都可以读取该编码(但如果您不写英文,则可能无法工作)。另一方面,> 输出重定向运算符使用 Powershell 的内部字符串表示形式,即 .Net System.String,即 UTF-16 ( reference )

顺便说一句,您还可以使用 Out-File,它使用 unicode 编码。

关于powershell -> 运算符和 Set-Content cmdlet 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22406496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com