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