我有一个程序(一个IDL编译器)可以创建一堆头文件。这些头文件有一个标头保护,末尾有一个随机部分,如下所示:
#ifndef AUTOMATEDGENERATEDCODEIMPL_H_U1CBCG
#define AUTOMATEDGENERATEDCODEIMPL_H_U1CBCG
// My code here
#endif /* AUTOMATEDGENERATEDCODEIMPL_H_U1CBCG */
每次生成解决方案时都会创建这些文件,即使其余代码未更改,随机部分也会更改。因此,在我在 git 中执行的每次提交中,我都会提交这些文件,这会导致很多无用的冲突(我构建代码,另一个构建相同的代码以获取其他标头,然后在变基/合并中,我们在这些标头保护上存在冲突)。
因此,我想创建一个在 Visual Studio 的生成后事件中运行的 PowerShell 脚本,该脚本删除该项目中所有头文件中所有标头保护的随机部分。
如何在 PowerShell 中将字符串*IMPL_H_(random part)
替换为所有 .h 文件中的*IMPL_H_
?
使用正则表达式替换:
Get-ChildItem -Recurse -Filter *.h | ForEach-Object {
$file = $_.FullName
(Get-Content $file) -creplace '(_IMPL_H_)[A-Z0-9]*', '$1' | Set-Content $file
}