2012-06-09 3 views
2

Я хочу настроить мою ОС Windows 7 Ultimate, чтобы упростить открытие .php-файлов на моем сервере. Если я просто открою файл с помощью iexplore.exe через меню «Открыть с помощью», он попытается загрузить файл .php, а не открыть его. (Я использую XAMPP).Что такое синтаксис оболочки/open/command?

Я правильно настроил каталоги для XAMPP.

В Рег я создал

HKEY_CLASSES_ROOT\.php 
@tweak.php.open 

&

HKEY_CLASSES_ROOT\teak.php.open\shell\open\command 
@"C:\Program Files (x86)\Internet Explorer\iexplore.exe" localhost/%1 

Однако это не дает ожидаемого результата. Это не так.

После некоторой отладки я обнаружил, что причиной этого является то, что полный адрес файла отправляется с использованием переменной% 1.

т.е.

"C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe" локальный/D: \ Web Development \ XAMPP \ HTDOCS \ form.php

Я думал, что синтаксис был так же, как в Batch? В пакете, если вы используете% 1, это будет имя файла. Это то, что я хочу получить, а не весь путь.

Я решил этот вопрос с довольно изменчивым решением, перенаправляя вывод в пакетный файл, который я создал для синтаксического анализа строки и отправки ее в iexplore.exe ... Пожалуйста, помогите мне с синтаксисом или скажите мне, где я могу узнать правильный синтаксис. (Я не уверен, что имя этого типа языка называется .... партия или оболочки или что:. S)

+1

Это не программирование вопрос. Проголосовал за закрытие/перенаправление вопроса на SuperUser.com ... где он (по крайней мере) по теме. –

+0

Это так. Он программирует команду с использованием языка процессора командной строки. –

+0

Может кто-нибудь объяснить, что этот «язык» (имя, чтобы я мог его использовать), и где я могу узнать об этом? – Klik

ответ

2

Попробуйте

@"C:\Program Files (x86)\Internet Explorer\iexplore.exe" "localhost/%~nx1" 

P.S. Нет, я, кажется, не работает напрямую, вы должны поместить эту строку в пакетный файл.

Вот обходной путь, поставить эту строку в реестре:

cmd /c "for %%a in ("%1") do "C:\Program Files (x86)\Internet Explorer\iexplore.exe" "localhost/%%~nxa"" 
+0

Я скопировал и вставил это в ключе команды, но он не работает должным образом? Мне удалось обойтись, используя пакетный файл, но мне не удалось найти способ сделать это напрямую. Panda, вы используете для меня много иностранного синтаксиса, например, метки и %% ~ nxa^... Я хотел бы узнать и понять это, что называется этим языком? Это отличается от партии, не так ли? – Klik

+0

@TheWeirdNerd. Это была проблема с пробелами и скобками, я исправил команду. Что касается синтаксиса - это регулярный синтаксис командного файла, '^' ускоряет следующий символ, так что он теряет свою специальную функцию.Я избежал кавычек внутри литеральной строки, иначе их можно было бы рассматривать как конец строки, вам нужно избегать парнеров (возможно, только закрывающих, но это не помешало бы избежать обоих) - в противном случае они отмечают вложенный программный блок. Я не знаю, почему вам нужно бежать из космоса, только что приступив к нему путем проб и ошибок. '%% ~ nxa' означает принимать только имя и расширение из имени файла в' %% a' –

+0

Я немного изменил его, чтобы он работал. cmd/c "для %% a in (^"% 1^") делают« C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe "localhost/%% ~ nxa" – Klik