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

関連情報