Where I work, I often have to bind new hostnames in my (Windows) dev environment to test different websites. This involves hunting down the hosts file, updating it, then mucking around in IIS. It can get tedious. So naturally, I asked myself if this is something I could script out. And naturally, the answer is yes.
And here it is. I call it Addhost:
@echo off rem Addhost v1.2 by Will Boyd set sitename=Default Web Site set hostfilepath=%windir%\System32\drivers\etc\hosts set appcmdpath=%windir%\system32\inetsrv\appcmd echo Checking privileges... net session >nul 2>&1 if not %ERRORLEVEL% == 0 ( echo This script must be run with administrator privileges. goto end ) set hostname=%1 if "%1"=="" ( set /p hostname="Enter the hostname to add (ex: dev.potato.com): " ) echo Appending to hosts file... echo.>>%hostfilepath% echo 127.0.0.1 %hostname%>>%hostfilepath% echo Adding binding... %appcmdpath% set site /site.name:"%sitename%" /+bindings.[protocol='http',bindingInformation='*:80:%hostname%']>nul echo Restarting site... %appcmdpath% stop site /site.name:"%sitename%">nul %appcmdpath% start site /site.name:"%sitename%">nul echo Done. Go nuts! :end echo. pause
I hope other people find this useful, too. Check out my Addhost repo on GitHub for documentation, updates, or if you want to fork it.