Редактировать файл в ms-dos - PullRequest
0 голосов
/ 28 марта 2012

Можно ли это сделать?

В основном я работаю над несколькими проектами, используя xampp, и мне нравится http://localhost, чтобы быть корнем проекта (а не http://localhost/project_name/)

Проблема в том,мне нужно открыть файл httpd.conf в папке apache, изменить корень документа, затем перезапустить apache!

Мне было интересно, можно ли это сделать в ms-dos?

скажем, янаписать командный файл, который:

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

Тогда все, что мне нужно сделать, это открыть командную строку и написать:

http_change.bat new_project_name

Проблема в том, что яЗнают только базовые MS-DOS, примеры и обучение в Интернете удивительно трудно понять!

РЕДАКТИРОВАТЬ

Я действительно борюсь с этим, поэтому я предлагаю щедрость.

До сих пор я пытался:

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" и если они делают, а не сохранять строку вновый файл, я изменяю строку, используя манипуляции с жалами, и сохраняю вместо этого ...

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Вы причиняете себе ненужное горе, пытаясь отредактировать файл конфигурации.Вот лучшая идея:

  • Удалите настройку DocumentRoot из файла httpd.conf.Замените его директивой Include, например:

    Include \path\to\documentroot.conf
    
  • Теперь вместо редактирования файла просто замените файл documentroot.conf, который содержит одну строку вида:

    DocumentRoot \path\to\my\documentroot
    

И вот еще одна идея:

Параметры конфигурации Apache можно передавать в командной строке с помощью директивы -C (или -c, в зависимости ото том, хотите ли вы, чтобы ваша директива применялась до (-C) или после (-c), Apache считывает свои файлы конфигурации).Как и в случае с предыдущей идеей, удалите директиву DocumentRoot из httpd.conf, а затем при перезапуске httpd запустите ее следующим образом:

httpd -C 'DocumentRoot \path\to\my\documentroot'
0 голосов
/ 29 августа 2014

Я не могу сказать вам, как:
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 приложение было удалено из 64-битных версий Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...