使用需求
因为我的工作需要,我总是需要更换网站根目录,来调试不同的网站。我本机的环境是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" <Directory "/xampp/htdocs"> # # …………
改为
# ………… # DocumentRoot "F:/www/wwwdir" <Directory "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
预览
双击运行后,可见以下界面:
输入要更改的文件夹名,回车以后即完成修改,不做任何提示。