与 UNIX 正则表达式等效的 Windows 版本

与 UNIX 正则表达式等效的 Windows 版本

有没有替代品

**/*.*
**/*.cpp

这样我就可以做这样的事情:

gcc -std=c++14 -I ./include/ -o ./bin/main ./src/**/*.cpp

(当我不使用任何 makefile 时我的操作方式)

在 Windows 上我这样做:

gcc -std=c++14 -I include -o bin/main src/main.cpp src/Sth.cpp src/SthEl.cpp

因为正则表达式似乎不起作用或者我无法找到让它们起作用的方法......

你能告诉我如何在 Windows 上做到这一点吗?

答案1

根据您可以使用绝对路径的情况,您可以使用以下 PowerShell 代码:

$files = (Get-ChildItem -Recurse -Path ./src *.cpp | %{echo $_.FullName}) -Join " "
gcc -std=c++14 -I include -o bin/main $files

您也许可以将其缩短为:

gcc -std=c++14 -I include -o bin/main ((Get-ChildItem -Recurse -Path ./src *.cpp | %{echo $_.FullName}) -Join " ")

这不完全像您的 Linux 版本那样简短或易读,但是我能想到的最接近您想要的结果。

如果你src有一个扁平的层次结构,你可以使用:

gcc -std=c++14 -I include -o bin/main src/*.cpp

相关内容