如何在 PowerShell 中添加到文件中?

Posted

技术标签:

【中文标题】如何在 PowerShell 中添加到文件中?【英文标题】:How to prepend to a file in PowerShell? 【发布时间】:2021-06-05 17:37:28 【问题描述】:

我正在生成两个文件,userscript.meta.jsuserscript.user.js。我需要将userscript.meta.js 的输出放在userscript.user.js 的开头。

Add-Content 似乎不接受要添加的参数,并且Get-Content | Set-Content 将失败,因为userscript.user.js 正在被Get-Content 使用。

如果物理上可能有一个干净的解决方案,我宁愿不创建中间文件。

如何做到这一点?

【问题讨论】:

【参考方案1】:
$(
    (Get-Content userscript.meta.js -Raw)
    (Get-Content userscript.user.js -Raw)
) | Out-File userscript.user.js

如果您的当前目录不是这些文件所在的位置,请考虑使用文件的完整路径。

【讨论】:

不错的答案。我只是好奇,为什么 $( ... )@( ... )?他们在做不同的事情吗?两者似乎都输出一个数组。我只看到 $( ... ) 使用的时间是在双引号内 @Daniel 两个子表达式都返回相同的东西 object[] 没有任何区别,这只是我的习惯:P 通常你会使用 @( ... ) 来确保结果是 array$( ... ) 当您希望括号内的结果被视为变量时。但是对于这种情况,没有任何区别。 谢谢。在这里学到了一些新东西。从来没有真正在双引号之外使用过 $( ) 。现在我看到它在行动。 +1 在这里阅读很好ss64.com/ps/syntax-operators.html@Daniel 不用担心。我听到了!你提供的够多了。无论如何,也许 mklement0 会出现并提供更技术性的答案:)

以上是关于如何在 PowerShell 中添加到文件中?的主要内容,如果未能解决你的问题,请参考以下文章

使用 PoEditor 添加翻译

Powershell - 在应用程序配置文件中找不到程序集绑定重定向

如何通过cmd杀死powershell进程?统一远程应用

如何使用PowerShell将选择查询的输出从DataSet复制到日志文件?

Powershell - 如何将文件名前缀到包含该文件类型的任何路径的文件夹中

如何在 PowerShell 中运行 appCmd 以将自定义标头添加到默认网站