从许多头文件

时间:2016-02-11 10:00:55

标签: powershell random header-files include-guards

我有一个程序(IDL编译器),它创建了一堆头文件。 这些头文件有一个头部保护,最后有一个随机部分,如下所示:

#ifndef AUTOMATEDGENERATEDCODEIMPL_H_U1CBCG
#define AUTOMATEDGENERATEDCODEIMPL_H_U1CBCG

// My code here

#endif /* AUTOMATEDGENERATEDCODEIMPL_H_U1CBCG */

每次构建解决方案时都会创建这些文件,即使其余代码未更改,随机部分也会更改。因此,在我在git中进行的每次提交中,我提交这些文件会导致很多无用的冲突(我构建代码,另一个构建相同的代码获取其他头,然后在rebase / merge中,我们在这些头部保护上有冲突)。

所以我想创建一个在Visual Studio中的后期构建事件中运行的PowerShell脚本,它删除该项目中所有头文件中所有头部保护的随机部分。

如何在PowerShell中用所有.h文件中的*IMPL_H_(random part)替换字符串*IMPL_H_

1 个答案:

答案 0 :(得分:2)

使用正则表达式替换:

Get-ChildItem -Recurse -Filter *.h | ForEach-Object {
  $file = $_.FullName
  (Get-Content $file) -creplace '(_IMPL_H_)[A-Z0-9]*', '$1' | Set-Content $file
}