使用powershell将文本附加到文件

ama*_*eur 3 powershell powershell-2.0

我有以下powershell命令,以递归方式循环遍历文件夹($ ScriptFolder)中的所有.sql文件,并将其附加到另一个sql文件($ TargetFile).

Get-ChildItem -path "$ScriptFolder" -recurse |?{ ! $_.PSIsContainer } |?{($_.name).contains(".sql")} | %{ Out-File -filepath $TargetFile -inputobject (get-content $_.fullname) -Append }
Run Code Online (Sandbox Code Playgroud)

我希望做什么,因为每个.sql都附加到目标文件,在该点添加文本到目标文件.sql附加到它并在.sql附加到目标文件后添加文本.

我是powershell的新手,所以任何人都可以概述我如何做到这一点?谢谢

ajk*_*ajk 5

这可能是你的诀窍:

Get-ChildItem -recurse -include "*.sql" |
Foreach-Object { Add-Content -Path $targetFile -Value "-- Begin $($_.FullName)--`r`n$(Get-Content $_ | Out-String)--End $($_.FullName)--`r`n"; }
Run Code Online (Sandbox Code Playgroud)

该代码将递归遍历所有.sql文件,并将其内容添加到$targetFile您的操作中.它用--Begin <full path>--和包装每个添加--End <full path>--.仅供参考,我输出Get-Contentto 的输出Out-String因为Get-Content返回一个对象数组.如果省略该管道,此代码将从源文件中删除换行符.