慕運維8079593
2019-12-26 09:13:11
在PowerShell中,Out-File和之間有什么區(qū)別Set-Content?還是Add-Content和Out-File -append?我發(fā)現如果我對同一個文件使用這兩個文件,則文本完全是mojibaked。(第二個小問題:>是的別名Out-File,對吧?)
3 回答

SMILET
TA貢獻1796條經驗 獲得超4個贊
Out-File
除非設置了-NoClobber
and / or -Append
標志,否則它具有覆蓋輸出路徑的行為。Add-Content
如果默認情況下已經存在輸出路徑,則將附加內容(如果可以)。如果一個都不存在,兩者都將創(chuàng)建文件。
另一個有趣的區(qū)別是,Add-Content
默認情況下將創(chuàng)建ASCII編碼文件,默認情況下Out-File
將創(chuàng)建小端字節(jié)unicode編碼的文件。
>
是的別名語法糖Out-File
。它Out-File
帶有一些預定義的參數設置。

慕俠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
添加回答
舉報
0/150
提交
取消