我需要提取作为脚本参数给出的C源文件中定义的函数名称。 我对PowerShell不是很熟悉,但不应该是这样的:
If ($FileExists -eq $True)
{
select-string $args[0] -pattern "\(void\|double\|char\|int\) \.*(.*)"
}
答案 0 :(得分:2)
我将定义您要搜索的文件扩展名列表,并在Include参数中使用它们,然后通过管道选择字符串并提取捕获组匹配。
dir -Path C:\c-program -Include *.h, *.c -Recurse | Select-String -Pattern '(void|double|char|int) (\w+)\(' | % {$_.Matches[0].Groups[2].Value}
这是使用维基百科中的函数名称的简化示例:
'void incInt(int *y)','int main(int argc, char* args[])','int subtract(int x, int y)' | Select-String -Pattern '(void|double|char|int) (\w+)\(' | % {$_.Matches[0].Groups[2].Value}