Как открыть окно проводника в заданном каталоге из cmd.exe?

Я вижу, как запускать многие другие программы из командного файла, но я не могу найти команду типа open в Mac OS X. Имеется ли такой инструмент в Windows? Powershell или вызовы API Windows из исполняемого файла также будут работать.

Ответы

Ответ 1

В Windows вы можете открыть Explorer с помощью следующей команды:

C:\Users\Leniel>start %windir%\explorer.exe

Если вы хотите открыть определенную папку, сделайте это, например:

C:\Users\Leniel>start %windir%\explorer.exe "C:\Users\Leniel\Desktop"

Ответ 2

Прямой эквивалент OS X open равен start в cmd.

start foo.txt

запускает Notepad (или любой текстовый редактор, который вы используете),

start http://example.com

запустит ваш браузер,

start \someDirectory

запустит Explorer и т.д.

В кавычках необходимо учитывать аргументы, поскольку start интерпретирует первый цитируемый аргумент как заголовок окна, который должен использоваться, поэтому что-то вроде

start "C:\Users\Me\Folder with spaces\somedocument.docx"

не будет работать должным образом. Вместо этого добавьте пустой аргумент в этом случае:

start "" "C:\Users\Me\Folder with spaces\somedocument.docx"

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

cmd /c start ...

Эквивалент в PowerShell равен либо Start-Process, либо Invoke-Item. Последнее, вероятно, лучше подходит для этой задачи.

Invoke-Item foo.txt  # launches your text editor with foo.txt
Invoke-Item .        # starts Explorer in the current directory

Что касается Windows API, вы ищете ShellExecute с глаголом open.