0

我需要提取作为脚本参数提供的 C 源文件中定义的函数的名称。我对 PowerShell 不是很熟悉,但不应该是这样的:

If ($FileExists -eq $True)
{
     select-string $args[0] -pattern "\(void\|double\|char\|int\) \.*(.*)"
}
4

1 回答 1

2

我将定义您要在其中搜索并在 Include 参数中使用它们的文件扩展名列表,然后通过管道传输到 select-string 并提取捕获组匹配项。

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}
于 2012-04-22T22:33:53.893 回答