猿问

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

在PowerShell中,Out-File和之间有什么区别Set-Content?还是Add-Content和Out-File -append?


我发现如果我对同一个文件使用这两个文件,则文本完全是mojibaked。


(第二个小问题:>是的别名Out-File,对吧?)


慕运维8079593
浏览 1645回答 3
3回答

SMILET

Out-File除非设置了-NoClobberand / or -Append标志,否则它具有覆盖输出路径的行为。Add-Content如果默认情况下已经存在输出路径,则将附加内容(如果可以)。如果一个都不存在,两者都将创建文件。另一个有趣的区别是,Add-Content默认情况下将创建ASCII编码文件,默认情况下Out-File将创建小端字节unicode编码的文件。>是的别名语法糖Out-File。它Out-File带有一些预定义的参数设置。

慕侠2389804

好吧,我不同意... :)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
随时随地看视频慕课网APP
我要回答