.bat 文件问题

.bat 文件问题

我正在使用 Windows XP。

我需要批处理文件来执行以下操作:

  1. 在 D:/Webserver/domains/%DOMAINNAME/www/ 上创建目录 $DOMAINNAME
  2. 打开文件 - D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
  3. 将以下内容附加到该文件:

    <VirtualHost *:1337>
        DocumentRoot "D:/Webserver/domains/$DOMAINNAME/www"
        ServerName "$DOMAINNAME"
        ServerAlias "$DOMAINNAME"
        ErrorLog "logs/$DOMAINNAME-error.log"
        CustomLog "logs/$DOMAINNAME-access.log" common
    <Directory "D:/Webserver/domains/$DOMAINNAME">
    Allow From all
    AllowOverride All
    </Directory>
    </VirtualHost>
    
  4. 打开文件 - C:/WINDOWS/sysstem32/drivers/etc/hosts

  5. 将其附加到该文件:

    127.0.0.1 $域名

  6. 关闭文件。

我手动做这个,但是很累。请帮忙。

答案1

干得好:

mkdir D:\Webserver\domains\%1
mkdir D:\Webserver\domains\%1\www
echo ^<VirtualHost %1:1337^> >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo DocumentRoot "D:/Webserver/domains/%1/www" >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ServerName "%1" >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ServerAlias "%1" >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ErrorLog "logs/%1-error.log" >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo CustomLog "logs/%1-access.log" common >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ^<Directory "D:/Webserver/domains/%1"^> >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo Allow From all >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo AllowOverride All >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ^</Directory^> >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo ^</VirtualHost^> >> D:/Webserver/apache2/conf/extra/httpd-vhosts.conf
echo 127.0.0.1 %1 >> C:/WINDOWS/system32/drivers/etc/hosts

只需将其保存为.bat 文件并使用您想要的域名作为参数运行它,如下所示:

script.bat MyDomain

我还修复了您的配置中的一个错误:您不能让多个默认站点在同一个端口上监听,因此指令<VirtualHost>需要包含域名。

答案2

您最好使用可以在 XP 上运行的 PowerShell。但如果您只能使用 .bat:

创建域.bat newdomain.com

cd D:\Webserver\domains\
mkdir %1
mkdir %1\www
cd D:\Webserver\apache2\conf\extra\

echo DocumentRoot "D:/Webserver/domains/%1/www"  >> httpd-vhosts.conf
echo ServerName "%1" >> httpd-vhosts.conf
echo ServerAlias "%1" >> httpd-vhosts.conf
echo ErrorLog "logs/%1-error.log" >> httpd-vhosts.conf
echo CustomLog "logs/%1-access.log" common >> httpd-vhosts.conf
echo Allow From all >> httpd-vhosts.conf
echo AllowOverride All >> httpd-vhosts.conf

cd c:\Windows\System32\Drivers\etc

echo "127.0.0.1  %1" >> hosts

这种方法既快速又粗糙,并且不包含任何错误捕获功能(当 mkdir 失败时会发生什么?此脚本并不关心)。请记住,AV 软件对文件的修改非常非常谨慎hosts,因此可能无法运行。

相关内容