使用PowerShell预先挂起一个文件到目录及其子目录中的所有.cs文件

如何使用Powershell将一个文件预先挂起(在文件的开头插入)到文件夹和子文件夹中同一类型的所有文件?

我需要添加一个标准头文件到所有的.cs,并试图使用Powershell这样做,但当我能够在几行代码中添加它时,我在尝试预先挂起它时卡住了。

请先 登录 后评论

3 个回答

agnul

不知道,但如果你有代码要追加,就反过来做。类似的

  1. 重命名现有文件,
  2. 创建一个与上面名称相同的空文件
  3. 附加头到新的空文件,
  4. 附加重命名的文件,
  5. 删除重命名文件
请先 登录 后评论
Vhaerun

从算法上讲,你并不需要一个临时文件:

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

2)修改内容(作为字符串,假设内容在名为content的变量中),像这样:content = header + content

3)seek到文件的开头,每种语言都有一个seek方法或一个seek等效物

4)写新内容

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

好了,没有临时文件。:)

请先 登录 后评论
Mark Schill

下面是一个非常简单的例子,向您展示了一种可以做到这一点的方法。

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