1

Я использую несколько инструментов CLI, таких как curl , ipcalc , perl , php , wget и т.д.

При открытии командной строки через меню «Пуск» или «Выполнить ...»> cmd я могу вызвать эти инструменты, просто указав их имя:

Microsoft Windows [version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\cduv>wget
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.

C:\Users\cduv>php
^C

Но я заметил, что при использовании командной строки, открываемой через собственную запись "Открыть командное окно здесь" контекстного меню «SHIFT-down», это не работает.

Microsoft Windows [version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\cduv>wget
'wget' not recognized as an internal or external command,
operable program or batch file.

C:\Users\cduv>php
'php' not recognized as an internal or external command,
operable program or batch file.

Переменная среды PATH выглядит нормально (в противном случае я не смог бы запустить исполняемые файлы, как показано в первом примере).

Есть ли объяснение такой разнице? Как я могу исправить консоль "Открыть командное окно здесь"?

(Я использую Windows 7)

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

Содержание% PATH% на стандартной консоли:

C:\Users\cduv>echo %PATH%
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\ActivePerl 5.14.2.1402\site\bin;C:\Program Files\ActivePerl 5.14.2.1402\bin;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\PHP 5.5.5\ext;C:\Program Files (x86)\PHP 5.5.5;C:\Program Files (x86)\PsTools 2.44;C:\Program Files (x86)\wget 1.11.4;C:\Program Files\cURL 7.23.1;C:\Program Files\TortoiseGit 1.7.15.0\bin;C:\Drivers\AMD Catalyst Suite 13.1\ATI.ACE\Core-Static;C:\Program Files\Slik Subversion 1.8.3-1\bin

Содержание% PATH% в консоли "Открыть командное окно здесь":

C:\>echo %PATH%
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\ActivePerl 5.14.2.1402\site\bin;C:\Program Files\ActivePerl 5.14.2.1402\bin;%CommonProgramFiles%\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;%ProgramFiles(x86)%\PHP 5.5.5\ext;%ProgramFiles(x86)%\PHP 5.5.5;%ProgramFiles(x86)%\PsTools 2.44;%ProgramFiles(x86)%\wget 1.11.4;%ProgramFiles%\cURL 7.23.1;%ProgramFiles%\TortoiseGit 1.7.15.0\bin;C:\Drivers\AMD Catalyst Suite 13.1\ATI.ACE\Core-Static;%ProgramFiles%\Slik Subversion 1.8.3-1\bin

Используя Process Explorer (из Sysinternals), я могу сказать, какая командная строка использовалась для открытия командной строки

  • Через меню "Пуск" или "Выполнить": "C:\Windows\system32\cmd.exe"

    (Родительское дерево: explorer.exe> cmd.exe)

  • Через "Открыть командное окно здесь": "cmd.exe" /s /k pushd "C:\"

    (Родительское дерево: wininit.exe> services.exe> svchost.exe> explorer.exe> cmd.exe)

0