【问题标题】:Use PowerShell to Overwrite entire contents of multiple *.txt files at the same time使用 PowerShell 同时覆盖多个 *.txt 文件的全部内容
【发布时间】:2020-02-07 06:40:38
【问题描述】:

我正在尝试编写一个快速脚本来“重置”一些我用来从另一个脚本收集结果的文件。我并不总是希望它们重置,也不希望其他使用原始脚本的人能够重置它们,所以我只需要一个简单的脚本来执行此操作,但似乎找不到任何东西.. . 我找到的最接近的东西是这个,但它不是我要找的东西:

Get-ChildItem "$PSScriptRoot\*.txt" -Recurse | ForEach {
(Set-Content $_ | ForEach { $_ -replace '', 'Currently no results' }) |
Set-Content $_
}

【问题讨论】:

  • 看看Clear-Content,它可以用一个命令“清空”多个文件。
  • 我也试过了,但不知道在完成后如何添加到每个文件中。
  • “添加到每个文件”是什么意思
  • 我希望每个文件都显示“当前没有结果”。我知道这似乎是多余的,但我的其他脚本依赖于这些文件的内容,所以我需要在其中包含一些内容。
  • 听起来你想要Set-Content 代替。

标签: powershell text overwrite


【解决方案1】:

您可以使用静态-Value 参数将Get-ChildItem 输出直接传递到Set-Content,该参数使用相同的字符串填充所有输入文件:

Get-ChildItem $PSScriptRoot\*.txt -Recurse |
  Set-Content -Value 'Currently no results' -WhatIf

-WhatIf预览操作;删除它以实际覆盖文件的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 2018-08-16
    相关资源
    最近更新 更多