2015-09-10 3 views
0

Когда я запускаю cmd.exe из меню «Пуск», я получаю зарегистрированную (в реестре) переменную PATH в новом окне.Как запустить новое cmd-окно с правильным путем из Cygwin?

Я хочу иметь точно такой же эффект от моего Cygwin + mintty, и попробуйте следующее:

Во-первых, я стараюсь:

bash$ cmd 

Это дает мне CMD оболочки, прямо внутри mintty. Но я хочу, чтобы это было в новом новом окне. emm ... Возможно, я могу попробовать:

bash$ cmd /c start cmd 

Это красиво дает мне оболочку cmd в новом окне. Хорошо. Тем не менее, PATH внутри этой командной оболочки отличается от новой.

C:\>path 
PATH=C:\cygwin64\usr\local\bin;C:\cygwin64\bin;C:\ProgramData\Oracle\Java\javapa 
th;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\W 
indowsPowerShell\v1.0;C:\opencv\myrelease\bin;C:\Qt\5.3\mingw482_32\bin;C:\Progr 
am Files (x86)\Skype\Phone;C:\Program Files (x86)\Windows Kits\8.1\Windows Perfo 
rmance Toolkit;C:\Program Files\Microsoft SQL Server\110\Tools\Binn;C:\cygwin64\ 
lib\lapack;D:\home\robin_hsu\bin 

C:\> 

Вы можете увидеть эти пути с cygwin64 не нужны. Итак, что я могу сделать, чтобы получить новое свежее окно cmd с правильным PATH?

Примечание: Я считаю, что проблема связана с тем, что PATH наследуется, от bash до cmd.

Возможно, кто-то может дать мне некоторый намек, чтобы получить зарегистрированный PATH системы windows под bash cygwin. Если это возможно, я могу сначала изменить PATH на нужный, а затем позвонить cmd

ответ

1

Итак, это в основном дублирующий вопрос до Start new cmd.exe and NOT inherit environment?. Однако этот вопрос не просит открыть новое окно, и, по крайней мере, для меня ответы там не дали мне правильный путь. Следующая команда дает оба (для меня, на XP).

cygstart "$WINDIR\explorer.exe" "$WINDIR\system32\cmd.exe"

Единственная проблема в том, что он также выводит диалоговые окна «Загрузка файла - Предупреждение безопасности» и «Проводник Windows - Предупреждение безопасности». This link показывает, как вообще можно избежать этого, но я не уверен, что можно удалить предупреждения только для одного конкретного файла. Также есть несколько ответов here и here на superuser.com об отключении предупреждений.

Надеюсь, это поможет.

+0

Проблема в том, что PATH наследуется от оболочки bash cygwin до cmd. 'USERPROFILE' - это только домашняя папка. –

+0

Спасибо за разъяснение, я пересмотрел свой ответ. – pak

+0

Спасибо. Это именно то, чего я хочу. В моей Win7 он не вызывает никакого диалогового окна. Фактически, 'explorer '$ WINDIR \ system32 \ cmd.exe" 'также работает, без' cygstart' –

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