Windows equivalente para expressões regulares unix

0

Existe um substituto para

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

para que eu possa fazer coisas assim:

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

(o jeito que eu vou quando eu não uso nenhum makefile)

no windows eu fiz assim:

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

porque expressões regulares parecem não funcionar ou não consegui encontrar uma maneira de fazê-las funcionar ...

Você poderia me dizer como fazer isso no Windows?

    
por baxbear 17.10.2016 / 12:11

1 resposta

0

Dependendo de quando você pode usar caminhos absolutos, pode usar a seguinte parte do Código do PowerShell:

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

Você pode encurtar isso para:

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

Isso não é exatamente tão curto ou legível quanto o seu equivalente no Linux, mas o mais próximo que eu posso pensar para chegar ao resultado desejado.

Se o seu src tiver uma hierarquia simples, você poderá usar:

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