使用PowerShell将文件预先添加到目录和子目录中的所有.cs文件中

时间:2020-03-05 18:56:23  来源:igfitidea点击:

如何使用Powershell将文件预添加(插入文件的开头)到文件夹和子文件夹中某个类型的所有文件中?

我需要向所有.cs添加标准头文件,并尝试使用Powershell这样做,但是尽管我能够将其添加到几行代码中,但在尝试预先添加它时却遇到了麻烦。

解决方案

回答

不知道,但是如果我们有要添加的代码,则以相反的方式进行操作。就像是

  • 重命名现有文件,
  • 创建一个与上面相同名称的空文件
  • 将标题添加到新的空文件,
  • 将重命名的文件添加到以前的文件,
  • 删除重命名的文件

回答

从算法上讲,我们实际上并不需要一个临时文件:

1)读取需要修改的文件内容

2)修改内容(假设我们将内容包含在名为content的变量中,则为字符串),如下所示:content = header + content

3)搜寻文件的开头,每种语言都有一个搜寻方法或者一个等效的搜寻

4)写新内容

5)在文件指针返回的位置截断文件

那里有文件,没有临时文件。 :)

回答

这是一个非常简单的示例,向我们展示了可以完成此操作的一种方法。

$Content = "This is your content`n"
Get-ChildItem *.cs | foreach-object { 
$FileContents = Get-Content -Path $_
Set-Content -Path $_ -Value ($Content + $FileContents)
}