Можно ли открыть окно проводника Windows из PowerShell?


304

Я уверен, что это возможно, но я не могу понять, как это сделать.

Есть какие-нибудь подсказки?

Ответы:


666

Использование:

ii .

что коротко для

Invoke-Item .

Это одна из самых распространенных вещей, которые я печатаю в командной строке PowerShell.


3
Забавно, что никто не ответил на этот самый простой ответ, кроме вас. :)
halr9000

15
Я очень простой человек.
EBGreen

85
Эта команда короткая для Invoke-Item. Точка после нее может быть любым путем.
М. Дадли

Офигенно, очень простой ответ! Мне это нравится.
Энтони Лириано,

Таким образом, первый параметр по умолчанию iiэто explorer, второй параметр это путь.
Тимо

145

У вас есть несколько вариантов:

  • Powershell ищет исполняемые файлы на вашем пути, как и cmd.exe. Таким образом, вы можете просто ввести explorer в командной строке powershell. Используя этот метод, вы также можете передавать аргументы строки cmd (см. Http://support.microsoft.com/kb/314853 )
  • Invoke-Item командлет предоставляет способ для запуска исполняемого файла или открыть файл (или набор файлов) из в Windows PowerShell. Псевдоним : II
  • использовать system.diagnostics.process

Примеры:

PS C:\> explorer
PS C:\> explorer .
PS C:\> explorer /n
PS C:\> Invoke-Item c:\path\
PS C:\> ii c:\path\
PS C:\> Invoke-Item c:\windows\explorer.exe
PS C:\> ii c:\windows\explorer.exe
PS C:\> [diagnostics.process]::start("explorer.exe")

5
Вы также можете сделать: invoke-item c: \ path \
x0n

Это самый лучший и наиболее информативный ответ здесь, и он также должен включать в себя другие ответы здесь, особенно «ii».
DaveD

iiявляется псевдонимомInvoke-Item
Колоб Каньон

32

Используйте любой из них:

  1. start .
  2. explorer .
  3. start explorer .
  4. ii .
  5. invoke-item .

Вы можете применить любую из этих команд в PowerShell.

На всякий случай, если вы хотите открыть проводник из командной строки, последние две команды не работают, а первые три работают нормально.


23

Просто используйте Invoke-Itemкомандлет. Например, если вы хотите открыть окно проводника в текущем каталоге, вы можете сделать:

Invoke-Item .

Псевдоним для этого является II.
VivekDev


18

Я столкнулся с этим вопросом в поисках способа открыть окно проводника в PowerShell, а также выбрать файл. Я добавляю этот ответ на случай, если другие столкнутся с ним по той же причине.

Чтобы запустить Explorer и выбрать файл, используйте Invoke-Expression:

Invoke-Expression "explorer '/select,$filePath'"

Возможно, есть и другие способы сделать это, но у меня это сработало.


10
$startinfo = new-object System.Diagnostics.ProcessStartInfo 
$startinfo.FileName = "explorer.exe"
$startinfo.WorkingDirectory = 'D:\foldername'

[System.Diagnostics.Process]::Start($startinfo)

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


1
Я не знаю, почему за это проголосовали - я вижу, что не проголосовал за отсутствие элегантности, но это все же хороший (хотя и многословный) ответ :) Вы получаете мой UP.
промах

1
Я согласен. Это намного больше кода, но он обеспечивает некоторую гибкость.
Майк Шепард

Когда я использую этот код, он открывает Проводник, но не каталог, который я передал как WorkingDirectory. Он просто открывает папку «Библиотеки». Ответ шовавник представлен правильно в одну строку.
Phoenix14830


2

Я хотел написать это как комментарий, но у меня нет 50 репутации.

Все ответы в этой теме в основном должны использовать Invoke-Item или напрямую использовать explorer.exe; однако, это не полностью синонимично с «открытием, содержащим папку», так что с точки зрения открытия окна Проводника, как говорится в вопросе, если мы хотим применить ответ к определенному файлу, на этот вопрос все еще действительно нет ответа.

например,

Invoke-Item C:\Users\Foo\bar.txt
explorer.exe C:\Users\Foo\bar.html

^ эти две команды приведут к тому, что Notepad.exe или Firefox.exe будут вызваны для этих двух файлов соответственно, а не для окна explorer.exe в C: \ Users \ Foo \ (содержащий каталог).

Принимая во внимание, что если кто-то запускал эту команду из powershell, это не составило бы большого труда (в любом случае это было бы меньше ввода), если кто-то создает сценарии и ему нужно «открыть папку с переменной» для переменной, это становится вопросом соответствия строк для извлечения каталога из полный путь к файлу.

Нет ли такой простой команды «Открыть-содержащую-папку», которая могла бы заменить переменную?

например,

$foo = "C:\Users\Foo\foo.txt"    
[some code] $fooPath
# opens C:\Users\Foo\ and not the default program for .txt file extension

2
Invoke-Item ([io.fileinfo] "C: \ temp \ file.txt"). Каталог
Dave_J

Альтернатива, которая по сути та же самая, но сохраняет все это в командлетах Powershell: ii (Split-Path "C: \ temp \ file.txt")
EBGreen

0

Это единственное, что соответствует моим уникальным ограничениям: открывать папку как вкладку Quizo в любом существующем окне проводника.

$objShell = New-Object -ComObject "Shell.Application"
$objShell.Explore("path")
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.