我正在尝试cat在Unix中复制命令的功能。
我想避免这样的解决方案:将两个文件显式地读入变量,将变量串联在一起,然后写出串联变量。
我正在尝试cat在Unix中复制命令的功能。
我想避免这样的解决方案:将两个文件显式地读入变量,将变量串联在一起,然后写出串联变量。
Answers:
您可以简单地使用cat example1.txt, example2.txt | sc examples.txt。您当然也可以使用这种样式连接两个以上的文件。另外,如果文件的命名类似,则可以使用:
cat example*.txt | sc allexamples.txt
该cat是一个别名Get-Content,并且sc是一个别名Set-Content。
注意1:请注意后一种方法-如果尝试输出到examples.txt(或与模式匹配的类似内容),PowerShell将陷入无限循环!(我刚刚测试过)。
注意2:输出到的文件>不会保留字符编码!这就是为什么建议使用Set-Content(sc)的原因。
Set-Content使用国家代码页(例如Windows-1252为英文)。如果源文件包含其他编码(例如Windows-1251或UTF8),则必须设置正确的编码sc file.txt -Encoding UTF8(自v6.2开始支持俄语的数字,例如1251)
Get-Content my.bin -Raw | Set-Content my.bin -NoNewline不会更改my.bin。-Raw保留任何CR / LF字节,同时-NoNewline阻止PowerShell添加自己的CR / LF字节。
不要使用>; 它弄乱了字符编码。用:
Get-Content files.* | Set-Content newfile.file
cat是的别名Get-Content。
ÿþ它正在FF FE连接文件的开头>。
您可以使用Add-Content cmdlet。也许它比其他解决方案要快一点,因为我没有检索第一个文件的内容。
gc .\file2.txt| Add-Content -Path .\file1.txt
gc参考?
gc是Get-Content