Bat-Datei zur Automatisierung einiger Webentwicklungen

Bat-Datei zur Automatisierung einiger Webentwicklungen

Das Erstellen eines virtuellen Hosts in einer Windows-Umgebung ist sehr mühsam. Sie müssen den Site-Ordner erstellen, httpd.conf, Hosts und so weiter bearbeiten. Um einiges davon zu automatisieren, habe ich beschlossen, eine Batchdatei zu erstellen, um einiges davon zu automatisieren. Hier ist, was mir als Erstes eingefallen ist:

@ECHO OFF

::location of vhosts
SET BASEURL=D:\web\vhosts\

:sitenameprompt
::ask for a sitename
set /p sitename="Enter Sitename: " %=%

echo Before IF
IF EXIST %BASEURL%%sitename% echo The specified site folder already exists! Choose another. 
IF EXIST %BASEURL%%sitename% goto sitenameprompt 

IF NOT EXIST %BASEURL%%sitename% echo Creating folder 
IF NOT EXIST %BASEURL%%sitename% MD %BASEURL%%sitename%

echo Adding virtualhost to httpd.conf
pause
(
echo ###%sitename%###
echo    <VirtualHost *:80>
echo        ServerAdmin admin@%sitename%
echo        DocumentRoot "%BASEURL%%sitename%"
echo        ServerName %sitename%.dev
echo        ServerAlias %sitename%.dev
echo        <Directory "%BASEURL%%sitename%">
echo            Options Indexes FollowSymLinks Includes ExecCGI
echo            Order allow,deny
echo            Allow from all
echo        </Directory>
echo    </VirtualHost>
) >>D:\web\xampp\apache\conf\extra\httpd-vhosts.conf

pause
echo Restarting apache
::httpd -k restart

Wenn ich dieses Skript jetzt ausführe, tritt im Teil httpd.conf ein Syntaxfehler auf. Bedenken Sie, dass ich ziemlich neu darin bin, also ist es wahrscheinlich etwas Offensichtliches. Also, wo habe ich es vermasselt?

Antwort1

Hässliche Zeichen <>|&müssen im Batch mit einem Caretzeichen maskiert werden ^. Versuchen Sie Folgendes:

@echo off
(
echo ###%sitename%###
echo    ^<VirtualHost *:80^>
echo        ServerAdmin admin@%sitename%
echo        DocumentRoot "%BASEURL%%sitename%"
echo        ServerName %sitename%.dev
echo        ServerAlias %sitename%.dev
echo        ^<Directory "%BASEURL%%sitename%"^>
echo            Options Indexes FollowSymLinks Includes ExecCGI
echo            Order allow,deny
echo            Allow from all
echo        ^</Directory^>
echo    ^</VirtualHost^>
) >>D:\web\xampp\apache\conf\extra\httpd-vhosts.conf

verwandte Informationen