function copyto { param( [Parameter(ValueFromPipeline=$true)] $InputObject ) process { $file = Get-Content “1.txt” Get-Content “1.txt” |%{Copy-Item $file $InputObject -force } } } “D:\scripts”| .\copyto
3 Answers
Best Answer
你使用了最简单粗暴的递归,系统栈溢出。建议将递归改成非递归调用,我在《PowerShell访问便携式媒体设备(MTP)文件系统》中有一段类似的递归转换成非递归调用的实现,你可以参考。
绝大多数递归算法在实际操作过程中需要转换成非递归,不然太坑爹了。
function copyto { param( [Parameter(ValueFromPipeline=$true)] $InputObject ) process { $file = Get-Content “1.txt” Get-Content “1.txt” |%{Copy-Item $file $InputObject -force } }}”D:\scripts”| .\copyto