@echo off setlocal enabledelayedexpansion :: Default values set "company_name=company-name" set "package_name=package-name" set "CompanyName=CompanyName" set "PackageName=PackageName" set "root_namespace=" set "package_display_name=Package Display Name" set "package_description=This is an example package description." set "git_url=https://github.com/your-username/your-project-name" set "package_path=Assets/FolderName" set "author_name=Your Name" set "author_url=https://github.com/your-username" :: Get user input with defaults echo. set /p "input_company_name=Enter company_name [%company_name%]: " if not "!input_company_name!"=="" set "company_name=!input_company_name!" echo. set /p "input_package_name=Enter package_name [%package_name%]: " if not "!input_package_name!"=="" set "package_name=!input_package_name!" echo. set /p "input_CompanyName=Enter CompanyName [%CompanyName%]: " if not "!input_CompanyName!"=="" set "CompanyName=!input_CompanyName!" echo. set /p "input_PackageName=Enter PackageName [%PackageName%]: " if not "!input_PackageName!"=="" set "PackageName=!input_PackageName!" echo. set /p "input_root_namespace=Enter root_namespace [%root_namespace%]: " if not "!input_root_namespace!"=="" set "root_namespace=!input_root_namespace!" echo. set /p "input_package_display_name=Enter package_display_name [%package_display_name%]: " if not "!input_package_display_name!"=="" set "package_display_name=!input_package_display_name!" echo. set /p "input_package_description=Enter package_description [%package_description%]: " if not "!input_package_description!"=="" set "package_description=!input_package_description!" echo. set /p "input_git_url=Enter git_url [%git_url%]: " if not "!input_git_url!"=="" set "git_url=!input_git_url!" echo. set /p "input_package_path=Enter package_path [%package_path%]: " if not "!input_package_path!"=="" set "package_path=!input_package_path!" echo. set /p "input_author_name=Enter author_name [%author_name%]: " if not "!input_author_name!"=="" set "author_name=!input_author_name!" echo. set /p "input_author_url=Enter author_url [%author_url%]: " if not "!input_author_url!"=="" set "author_url=!input_author_url!" :: Update files echo. echo Updating variables ^& filenames... :: Use PowerShell to update file contents (excluding .git folder and batch files) powershell -Command "$companyName='%company_name%'; $packageName='%package_name%'; $CompanyName='%CompanyName%'; $PackageName='%PackageName%'; $rootNamespace='%root_namespace%'; $displayName='%package_display_name%'; $description='%package_description%'; $gitUrl='%git_url%'; $packagePath='%package_path%'; $authorName='%author_name%'; $authorUrl='%author_url%'; Get-ChildItem -Recurse -File | Where-Object { $_.FullName -notmatch '\\.git' -and $_.Extension -ne '.bat' } | ForEach-Object { $content = [System.IO.File]::ReadAllText($_.FullName); $content = $content -replace '\[company-name\]', $companyName -replace '\[package-name\]', $packageName -replace '\[CompanyName\]', $CompanyName -replace '\[PackageName\]', $PackageName -replace '\[root-namespace\]', $rootNamespace -replace '\[package-display-name\]', $displayName -replace '\[package-description\]', $description -replace '\[git-url\]', $gitUrl -replace '\[package-path\]', $packagePath -replace '\[author-name\]', $authorName -replace '\[author_name\]', $authorName -replace '\[author-url\]', $authorUrl; [System.IO.File]::WriteAllText($_.FullName, $content) }" :: Rename files (excluding .git folder and batch files) powershell -Command "$companyName='%company_name%'; $packageName='%package_name%'; $CompanyName='%CompanyName%'; $PackageName='%PackageName%'; Get-ChildItem -Recurse -File | Where-Object { $_.FullName -notmatch '\\.git' -and $_.Extension -ne '.bat' -and ($_.Name -match '\[company-name\]\.\[package-name\]' -or $_.Name -match '\[CompanyName\]\.\[PackageName\]' -or $_.Name -match '^\[package-name\]' -or $_.Name -match '^\[PackageName\]') } | ForEach-Object { $dir = $_.DirectoryName; $newName = $_.Name -replace '\[company-name\]\.\[package-name\]', ($companyName + '.' + $packageName) -replace '\[CompanyName\]\.\[PackageName\]', ($CompanyName + '.' + $PackageName) -replace '^\[package-name\]', $packageName -replace '^\[PackageName\]', $PackageName; Rename-Item -LiteralPath $_.FullName -NewName $newName }" echo. echo DONE! echo. pause