使用PowerShell在目录及其子目录中将一个文件预先添加到所有.cs文件

3

如何使用Powershell在文件夹及其子文件夹中的所有特定类型文件的开头插入(pre-pend)文件?

我需要将一个标准头文件添加到所有.cs文件中,并尝试使用Powershell来完成此操作,但在几行代码中追加文件时遇到了困难,尝试进行pre-pend时卡住了。

3个回答

9

以下是一个非常简单的例子,展示了一种实现方式。

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

1

我不确定,但如果你有追加代码的话,可以尝试另一种方式。类似于以下步骤:

  1. 重命名现有文件,
  2. 创建一个与上述文件同名的空文件,
  3. 将头部附加到新的空文件中,
  4. 将重命名的文件附加到前面的文件中,
  5. 删除已重命名的文件。

1
算法上来说,你并不需要一个临时文件:
1)读取你需要修改的文件内容;
2)修改内容(作为字符串,假设你已经将内容存储在名为content的变量中),像这样:content = header + content;
3)寻找文件开头,每种语言都有一个寻找方法或等效的寻找方法;
4)写入新内容;
5)在文件指针返回的位置截断文件。
这就是了,没有临时文件。 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接