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