2014-01-18 4 views
2

Привет, сообщество stackoverflow,
Я попытался настроить систему сборки в Sublime Text 3 для моих .html-файлов в моем каталоге xampp/htdocs.Как заменить часть пути с помощью cmd?

Поэтому мне нужно заменить часть FilePath и добавить
"http://localhost/"
в начале, а затем вызвать его в браузере. Не стесняйтесь публиковать любые предложения.

То, что я узнал, до сих пор от других потоков:

SETLOCAL ENABLEDELAYEDEXPANSION 
-- represtened by the $file variable in Sublimetext 3 - filepath would look like "${file}" -- 
SET filepath="C:\xampp\htdocs\test.html" 
SET searchstring="C:\xampp\htdocs\" 
SET replacestring="http://localhost/" 
SET modifiedpath=%searchstring%=%replacestring%! 

-- not sure about this one but it should work as it does for hardcoded sites -- 
"C:\Program Files\Opera\launcher.exe" !modifiedpath! 

Результат, который я получаю от этих команд только первый путь_к_файл что я вошел в открытом в браузере.

Что я делаю неправильно? Я не мог найти никаких вопросов по управлению путями с помощью cmd. Systems = W7/32bit и W8/64bit же результаты

Спасибо заранее, Питер

ответ

0
@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
:: -- represtened by the $file variable in Sublimetext 3 - filepath would look like "${file}" -- 
SET "filepath=C:\xampp\htdocs\test.html" 
SET "searchstring=C:\xampp\htdocs\" 
SET "replacestring=http://localhost/" 
CALL SET "modifiedpath=%%filepath:%searchstring%=%replacestring%%%" 
:: Belt-and-braces 
SET "modifiedpath=%modifiedpath:\=/%" 

:: -- not sure about this one but it should work as it does for hardcoded sites -- 
ECHO "C:\Program Files\Opera\launcher.exe" "%modifiedpath%" 

GOTO :EOF 

Это должно работать - на самом деле enabledelayeexpansion не нужен здесь.

Не уверен в Opera - нужны цитаты вокруг исполняемого имени, но аргумент может быть, может быть, и нет. Так как я не установил его, я просто ECHO отредактировал его - вам нужно будет удалить ECHO, чтобы он работал. Как бы то ни было, CMD просто покажет командную строку, которая должна вызывать Opera.

+0

Это очень хорошее объяснение и рабочий пакетный файл исправлен в отношении моих потребностей. Я setup видео youtube как только я сумею сделать эту работу в возвышенном. –

0

Ваш пример заменяет весь путь новым путем. Если это всегда так, вы можете сделать это, используя операции манипуляции% ~ filename.

@echo off 
set FILEPATH=c:\xampp\htdocs\test.html 
call :launch "%FILEPATH%" 
goto :EOF 

:launch 
echo "C:\Program Files\Opera\launcher.exe" "http://localhost/%~nx1" 

Или, если вы подачи Filepath в качестве аргумента% 1 к пакетному файлу, просто

echo "C:\Program Files\Opera\launcher.exe" "http://localhost/%~nx1" 

вы можете узнать больше о возможностях манипуляции файла в CMD, запустив команду

help for 

Если это не так, вы не делаете никаких выгод, пытаясь установить свой поиск и заменить строки. гораздо проще просто поместить необходимый поиск и заменить текст в строке.

@echo off 
set FILEPATH=c:\xampp\htdocs\foo\test.html 
set NEWPATH=%FILEPATH:c:\xampp\htdocs\=http://localhost/% 
echo "C:\Program Files\Opera\launcher.exe" "%NEWPATH:\=/%" 

Вы можете узнать больше о подстановки строк, запустив

help set 
+0

Отлично понимая, что происходит за пределами событий, я попытался повысить этот пост, но пока у меня недостаточно репутации, поэтому большое спасибо. –

Смежные вопросы