new-temp-project.ps1
function Get-CsName { param( [string]$Name, [string]$Fallback = "Project" ) if ([string]::IsNullOrWhiteSpace($Name)) { return $Fallback } try { $name = $Name.Trim() # Converteer _ . \ en spatie gevolgd door een letter naar hoofdletter $name = [regex]::Replace($name, '[\\._ ]([a-z])', { param($m) $m.Groups[1].Value.ToUpper() }) # Verwijder alles wat geen letter of cijfer is $name = $name -replace '[^a-zA-Z0-9]', '' if ($name.Length -gt 0) { # Eerste letter hoofdletter maken $name = $name.Substring(0,1).ToUpper() + $name.Substring(1) } # Als de eerste char een cijfer is, prepend een underscore if ($name.Length -gt 0 -and $name[0] -match '\d') { $name = "_$name" } return $name } catch { Write-Host "❌ Fout: $_" -ForegroundColor Red return $Fallback } } # -------------------------- # Script start # -------------------------- $rawName = Read-Host "Enter a project name" if ([string]::IsNullOrWhiteSpace($rawName)) { Write-Host "❌ Geen projectnaam ingevuld. Script wordt afgebroken." -ForegroundColor Red exit 1 } $projectname = Get-CsName $rawName if (Test-Path $projectname) { Write-Host "⚠️ Map '$projectname' bestaat al. Script wordt afgebroken." -ForegroundColor Yellow exit 1 } New-Item -ItemType Directory -Force -Path $projectname | Out-Null Push-Location $projectname git init dotnet new sln -n Solution dotnet new gitignore dotnet new globaljson --roll-forward latestMinor dotnet new nugetconfig # ConsoleApp krijgt dezelfde naam als project dotnet new console -n $projectname --use-program-main dotnet sln add $projectname Write-Host "✅ Project '$projectname' is aangemaakt." -ForegroundColor Green # VS Code openen code .
818400cookie-checkC# create console project powershell script