我正在尝试使用 PowerShell 连接一堆 1GB 的文件。通常我会在 Windows cmd.exe 中使用copy /b file.txt.0+file.txt.1 file.txt
. 但是,我所在的工作站已禁用 cmd.exe。 如何在 PowerShell 中运行相同的命令?当我完全相同地运行它时,出现以下错误,
Copy-Item : A positional parameter cannot be found that accepts argument 'file.txt'.
At line:1 char:1
+ copy /c file.txt.0+file.txt.1 file.txt
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Copy-Item], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.CopyItemCommand
我也试过这个,但它似乎只是用最后一个输入文件覆盖输出,
copy -Path [file.txt.0, file.txt.1] -Destination file.txt
我 在 如何在 PowerShell 中连接两个文本文件
Get-Content
?Set-Content
这是完全引用的答案:
如果
Get-Content
和Set-Content
对于大文件来说太慢,流是一个很好的选择。这是基于 此答案的(未经测试的)脚本:
您将在链接的答案中找到更多详细信息。
copy
在 PowerShell 中的别名Copy-Item
与 Dos 命令不同copy
。follow 命令非常适合大文件,而且速度非常快。在我的例子中,我的 powershell 实例在连接 8x1GB 文件时使用了大约 42MB 的内存。CPU 使用率也很低,我的磁盘是瓶颈。cmd /c copy /b file.txt.0+file.txt.1 file.txt