Powershell 重复地将一个文件的内容复制到另一个文件

Powershell 重复地将一个文件的内容复制到另一个文件,powershell,Powershell,我试图获取一个文件的内容,并将其复制到另一个文件中多次。我试过这个: for ($i=0; $i -lt 5; $i++) { Get-Content source } | Out-File destination 但我得到了错误:“不允许使用空管道元素”。在for循环周围放置括号,如下所示: (for ($i=0; $i -lt 5; $i++) { Get-Content source }) | Out-File destination 结果在表达式中出现“缺少结尾”)。请尝试以下操作:

我试图获取一个文件的内容,并将其复制到另一个文件中多次。我试过这个:

for ($i=0; $i -lt 5; $i++) { Get-Content source } | Out-File destination
但我得到了错误:“不允许使用空管道元素”。在for循环周围放置括号,如下所示:

(for ($i=0; $i -lt 5; $i++) { Get-Content source }) | Out-File destination
结果在表达式中出现“缺少结尾”)。

请尝试以下操作:

1..5 | %{Get-Content source | Out-File destination -append}
或更有效:

$content = Get-Content source; 1..5 | %{Out-File -FilePath destination -InputObject $content -append}
编辑:忘记了-append

尝试以下操作:

1..5 | %{Get-Content source | Out-File destination -append}
或更有效:

$content = Get-Content source; 1..5 | %{Out-File -FilePath destination -InputObject $content -append}

编辑:忘记了-append

for
循环作为脚本块调用,即生成管道输出的东西(
for
块本身没有):

(你确实可以再做一行)

另外,你的第二次尝试几乎是正确的。这项工作:

$(for ($i=0; $i -lt 5; $i++) { Get-Content source }) | Out-File destination

for
循环作为脚本块调用,即生成管道输出的东西(
for
块本身没有):

(你确实可以再做一行)

另外,你的第二次尝试几乎是正确的。这项工作:

$(for ($i=0; $i -lt 5; $i++) { Get-Content source }) | Out-File destination

差不多,但您需要在Out文件中添加
-Append
标志,我会在
获取内容
中添加一个
-ReadCount 0
,以加快速度:
1..5 | Foreach对象{Get Content source-ReadCount 0 | Out File destination-Append}
不,我的意思是我已经编辑了我的答案,在您的评论之前加入了Append。差不多,但是您需要在Out文件中添加
-Append
标志,我会在
获取内容
中添加一个
-ReadCount 0
,以加快速度:
1..5 | Foreach对象{Get Content source-ReadCount 0 | Out File destination-Append}
否,我的意思是我已经编辑了我的答案,在您的评论之前添加了Append。很好(+1)。不过,它也需要比其他解决方案多5倍的内存(在本例中)。对于大文件或数字,这可能是一个问题。我知道,并考虑过这一点,但似乎不太可能有人想要重复一个真正大文件的内容。很好(+1)。不过,它也需要比其他解决方案多5倍的内存(在本例中)。对于大型文件或数字,这可能是一个问题。我知道,并考虑过这一点,但似乎不太可能有人想要重复一个真正大型文件的内容。