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

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

Или, другими словами, как я могу вызвать обработчик Windows по умолчанию «Открыть» для файла из пакетного файла или сценария powershell?


person Robert Karl    schedule 03.08.2010    source источник
comment
start .. В Linux эквивалент xdg-open .   -  person phuclv    schedule 11.11.2016
comment
Это ответ, который вы ищете › use start .   -  person Prometheus    schedule 14.04.2020
comment
Почему это было помечено как не по теме? Я думаю, что это правильный вопрос программирования. Может быть, перефразируя, как я могу вызвать обработчик «открытия» операционной системы по умолчанию для файла из сценария оболочки в Windows, может сделать это более понятным?   -  person Daniel C. Sobral    schedule 10.06.2020


Ответы (5)


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

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

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

C:\Users\Leniel>start %windir%\explorer.exe "C:\Users\Leniel\Desktop"
person Leniel Maccaferri    schedule 03.08.2010
comment
Обычно проводник можно вообще не запускать: start "c:\mydir" - person the_mandrill; 04.08.2010
comment
Также при запуске программы с графическим интерфейсом start совершенно не нужна. Кроме того, explorer находится в %PATH%, так что explorer someDir в любом случае достаточно. - person Joey; 09.08.2010
comment
@mandrill: Это запустит другое окно консоли с заголовком c:\mydir ;-) - person Joey; 09.08.2010
comment
Обратите внимание, что важно использовать start, а не напрямую запускать explorer.exe. Его вызов напрямую создает новый процесс explorer.exe (с соответствующей памятью), а не открывает новое окно в существующем процессе Explorer. - person JoshL; 16.04.2013

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

start foo.txt

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

start http://example.com

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

start \someDirectory

запустит проводник и т.д.

Следует соблюдать осторожность с аргументами в кавычках, так как 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.

person Joey    schedule 09.08.2010
comment
Начало . открывает текущий каталог в проводнике - person Raúl Salinas-Monteagudo; 22.05.2019

Вы можете просто попробовать

start .

Это откроет проводник непосредственно с текущим путем к каталогу.

person ANUP SAJJAN    schedule 09.02.2021

Вы можете попробовать этот синтаксис:

explorer.exe folder_path

пример:

explorer.exe D:\Movies
person Ahmed Osman    schedule 20.01.2021

проводник.exe. работал на меня.

explorer.exe .

IMO. Поскольку нам нужно открыть проводник Windows из командной строки, explorer.exe . легко запомнить.

person asg    schedule 07.04.2021