我有一个程序(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_
?
答案 0 :(得分:2)
使用正则表达式替换:
Get-ChildItem -Recurse -Filter *.h | ForEach-Object {
$file = $_.FullName
(Get-Content $file) -creplace '(_IMPL_H_)[A-Z0-9]*', '$1' | Set-Content $file
}