【问题标题】:Powershell - Add string of text at the beginning of a text filePowershell - 在文本文件的开头添加文本字符串
【发布时间】:2023-03-07 21:56:01
【问题描述】:

我有一个文本文件目录,想在每个文件的开头添加一个文本字符串,然后在添加文本后可能将文件移动到另一个目录。我知道如何将文本附加到文件的末尾,而不是文件的开头。总的来说,我对 powershell 和脚本仍然很陌生,所以把它当作你在和一个白痴说话。

任何帮助将不胜感激。

【问题讨论】:

  • 请参阅How to ask a good question 帮助页面。到目前为止,您尝试过什么,遇到过哪些错误/问题? StackOverflow 不是代码编写服务。最好提供Minimal, Complete, and Verifiable Example
  • 这对我来说是一个有用的问题和答案——我不知道为什么它被否决了。 MS 上的 Add-Content 帮助未提供有关预置数据的信息。

标签: powershell add move


【解决方案1】:

至少,您可能想做这样的事情:

$Directory="C:\Scripts\Test"
$TextToAdd = "text here, yo"
$NewPath="C:\Scripts\Test\NewPath"
Get-ChildItem $Directory -Filter "*.txt" | foreach {$TextToAdd+"`r`n" + (get-content $_) | Out-File $_;  Move-Item -Path $_ -Destination $NewPath}
  1. 第一部分获取$Directory中的所有文本文件
  2. 第二部分遍历每个文件,获取要添加的文本并将其放在当前文件的内容之前。
  3. 第三部分用新内容替换文件。然后将它们移动到新的目的地。

如果您有任何问题,请告诉我。

编辑: 这就是你要找的。请注意在 Get-Content 中添加的“.FullName”和“-raw”。

Get-ChildItem -Path $Directory -Filter "*.txt" | foreach {$TextToAdd+"`r`n" + (Get-Content $_.FullName -raw) | Out-File $_.FullName; Move-Item -Path $_.FullName -Destination $NewPath}

【讨论】:

  • 感谢您的起点。我尝试了您的建议,但它用 $TextToAdd 覆盖了文件中的内容。同样出于某种原因,它查看了保存脚本的目录,而不是 $Directory。我需要在文件的开头添加一个新行。但这是一个很好的起点,我能够得到你想要做的事情,谢谢你的解释。所以我尝试了以下方法:$content = (Get-Content $_) Set-Content $_ -value $TextToAdd+"rn", $content Move-Item -Path $_ -Destination $newpath 但没有任何反应。请帮忙。
  • 那是我的错。我用正确的代码编辑了我的答案。
猜你喜欢
  • 2011-08-30
  • 2017-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 2021-04-07
  • 2018-09-12
相关资源
最近更新 更多