$gen = "gen" if (!(Test-Path $gen)) { mkdir $gen | Out-Null } $files = Get-ChildItem sources/*.proto | ForEach-Object { $_.Name } protoc ` --proto_path=sources ` --go_out=$gen ` --go-grpc_out=$gen ` --grpc-gateway_out=$gen ` --openapiv2_out=$gen ` --openapiv2_opt=allow_merge=true,merge_file_name=api,disable_default_errors=true ` $files $sourcePath = "$gen/git.hlsq.asia/alex/proto/proto/rs" $targetPath = "../../proto" Copy-Item -Path $sourcePath -Destination $targetPath -Recurse -Force Remove-Item -Path "$gen/git.hlsq.asia" -Recurse -Force