2012-03-28 29 views
0

可以這樣做嗎?在ms-dos中編輯文件

基本上我在多個項目使用XAMPP,我喜歡http://localhost是項目的根(而不是http://localhost/project_name/

問題是,我不得不打開apache的文件夾中的httpd.conf文件,更改記錄根目錄,然後重新啓動apache!

我想知道這是否可以在ms-dos中完成?

說我寫一個批處理文件:

opens the file, 
finds the document root, 
changes it, 
stop apache, 
start apache 

那麼我需要做的就是打開命令提示符,並寫上:

http_change.bat new_project_name

問題是,我只知道基本的MS-DOS和網上的例子和學費令人驚訝難以理解!

編輯

我真的與此這樣的IM產品賞金掙扎。

到目前爲止,我已經嘗試過:

for /f "eol=# tokens=* delims=*" %%a in (httpd.conf) do echo %%a 

這個成功讀取該文件,但後來我試圖

for /f "eol=# tokens=* delims=*" %%a in (httpd.conf) do (
    echo %%a 
) 

和工作。那麼

for /f "eol=# tokens=* delims=*" %%a in (httpd.conf) do (
    set line=%%a 
    echo %line% 
) 

那個失敗......它只是呼應「ECHO關閉」。這讓我認爲它不是設置行變量...

我的計劃是檢查每一行,看看是否第一個12個字符==「DocumentRoot」,如果他們這樣做,而不是保存行到一個新的文件,我修改使用sting操縱行,並保存,而不是...

+0

是否可以接受vbscript解決方案? – 2012-03-30 11:10:52

+0

我不知道,我可以在我的ms-dos命令行上使用vb嗎?我有Windows 7,我認爲id相當純ms-dos – 2012-03-30 11:24:11

+0

vbscript是一種腳本語言(不要與vb6/vb.net混淆);它的解釋器與Windows捆綁在一起,你不必安裝任何東西來運行該腳本。 – 2012-03-30 11:28:08

回答

2

你正在通過嘗試編輯配置文件造成自己不必要的悲傷。這裏有一個更好的主意:

  • httpd.conf文件中刪除DocumentRoot設置。與Include指令代替它,像:

    Include \path\to\documentroot.conf 
    
  • 現在不是編輯一個文件,你簡單的更換documentroot.conf文件,它包含以下形式的單行:

    DocumentRoot \path\to\my\documentroot 
    

這裏有另一個想法:

你可以通過命令行上的Apache配置選項與-C指令(或-c,這取決於您是否希望在Apache讀取其配置文件之前(-C)或之後(-c)應用您的指令。因此,與以前的想法,從httpd.conf刪除DocumentRoot指令,然後當你重新啓動httpd,象這樣開始:

httpd -C 'DocumentRoot \path\to\my\documentroot' 
+0

你我的朋友....是一個天才! – 2012-04-03 12:04:20

+0

我很高興它幫助!如果您對此解決方案感到滿意,如果您可以將其標記爲已接受,那就太好了。 – larsks 2012-04-03 12:54:32

0

我不能告訴你如何:
1. find the directory with batch, or, 2. start/stop apache
但我可以告訴你如何編輯它。
如果你使用XP或之前,使用
edit <drive:\path\file.ext>
如果你使用任何64位或Vista或更高版本,使用
copy con <drive:\path\file.ext>
監守16位edit應用程序是從Windows 64位版本中刪除。