为了账号安全,请及时绑定邮箱和手机立即绑定

PowerShell Set-Content和Out-File-有什么区别?

PowerShell Set-Content和Out-File-有什么区别?

慕运维8079593 2019-12-26 09:13:11
在PowerShell中,Out-File和之间有什么区别Set-Content?还是Add-Content和Out-File -append?我发现如果我对同一个文件使用这两个文件,则文本完全是mojibaked。(第二个小问题:>是的别名Out-File,对吧?)
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

Out-File除非设置了-NoClobberand / or -Append标志,否则它具有覆盖输出路径的行为。Add-Content如果默认情况下已经存在输出路径,则将附加内容(如果可以)。如果一个都不存在,两者都将创建文件。

另一个有趣的区别是,Add-Content默认情况下将创建ASCII编码文件,默认情况下Out-File将创建小端字节unicode编码的文件。

>是的别名语法糖Out-File。它Out-File带有一些预定义的参数设置。


查看完整回答
反对 回复 2019-12-26
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

好吧,我不同意... :)


Out-File具有将添加内容的-Append(-NoClober以避免覆盖)。但这不是同一只野兽。

命令 Add-Content将在输入上使用.ToString()方法。Out-File将使用默认格式。

所以:


ls | Add-Content test.txt


ls | Out-File test.txt

会给您完全不同的结果。


不,'>'不是别名,它是重定向运算符(与其他shell相同)。并且有非常严重的局限性...它将以相同的方式显示线条。Out-File具有-Width参数,可帮助您避免这种情况。同样,使用重定向运算符,您无法决定要使用哪种编码。


HTH Bartek


查看完整回答
反对 回复 2019-12-26
  • 3 回答
  • 0 关注
  • 1544 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信