使用需求
因为我的工作需要,我总是需要更换网站根目录,来调试不同的网站。我本机的环境是xampp,更换apache根目录这件事需要更改httpd.conf文件。每次都要打开再改,嫌麻烦,想找一个尽量简便的方法。由此写了这个批处理,希望实现直接输入路径,自动更改文件。
这里要提示一下,我的XAMPP安装在D:\xampp\,我的网站根目录想安排在F:\www\下的子文件夹中切换。
比如有时候是F:\www\aaa\,有时候是 F:\www\bbb\
这里说的是本机调试,而非服务器生产环境,本文只适于windows。
解决方法
由于我并没有研究批处理中的正则替换,所以稍微绕一下。
1. 找到httpd.conf文件位置,并重命名为httpd.conf.txt,并记录路径。
如:我的xampp中httpd.conf文件位置在:
D:\xampp\apache\conf\httpd.conf
那么我就复制一下,再后面加个txt,记录一下路径,即:
D:\xampp\apache\conf\httpd.conf.txt
2. 编辑httpd.conf.txt,找到DocumentRoot位置的两行,改为实际路径名为:wwwdir
如:我的httpd.conf.txt文件中,原来的内容是:
# …………
#
DocumentRoot "/xampp/htdocs"
#
# …………
改为
# …………
#
DocumentRoot "F:/www/wwwdir"
#
# …………
3. 新建文本文件,复制以下代码,改拓展名为.bat
@echo off
:: 设置httpd.conf文件路径,如 D:\xampp\apache\conf\
:: 切记末尾必须由\结束
set confdir=D:\xampp\apache\conf\
:: 设置示例文件路径,如 D:\xampp\apache\conf\httpd.conf.txt
set examplefile=D:\xampp\apache\conf\httpd.conf.txt
::
:: 以下内容不需更改
setlocal Enabledelayedexpansion
mode con cols=45 lines=3
color 0C
set /p inputdir=Project Floder Name :
del /f /s /q "%confdir%httpd.conf"
for /f "tokens=*" %%a in (%examplefile%) do (
set var=%%a
set var=!var:wwwdir=%inputdir%!
echo !var!>>"%confdir%httpd.conf"
)
endlocal
4. 最后配置一下就可以了,已经在代码里写了,配置两个位置confdir和examplefile
预览
双击运行后,可见以下界面:
输入要更改的文件夹名,回车以后即完成修改,不做任何提示。