使用 powershell 将文本附加到文件

发布于 2024-12-07 02:57:21 字数 434 浏览 1 评论 0原文

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

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

我想要做的是将每个 .sql 附加到目标文件,在 .sql 附加到目标文件时将文本添加到目标文件,并在 .sql 附加到目标文件后添加文本。

我是 powershell 新手,所以有人能概述我如何做到这一点吗?谢谢

I have the following powershell command that recursively loops through all .sql files in a folder ($ScriptFolder) and appends it to another sql file ($TargetFile).

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

What I would like to do as each .sql is appended to the target file, add text to the target file at the point .sql is appended to it and add text after the .sql is appended to the target file.

I am new to powershell, so could anyone outline how i might do this? Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓬勃野心 2024-12-14 02:57:21

这里有一些可能对您有用的东西:

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

该代码将递归地循环遍历所有 .sql 文件,像您一样将它们的内容添加到 $targetFile 中。它用 --Begin----End-- 包装每个添加内容。仅供参考,我将 Get-Content 的输出通过管道传输到 Out-String,因为 Get-Content 返回一个对象数组。如果省略该管道,此代码将从源文件中删除换行符。

Here's something that might do the trick for you:

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

That code will loop through all .sql files recursively, adding their contents to $targetFile as you did. It wraps each addition with --Begin <full path>-- and --End <full path>--. FYI, I pipe the output of Get-Content to Out-String because Get-Content returns an array of objects. If you leave out that pipe, this code will strip newlines from your source files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文