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

304

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

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

Lachmania
источник

Ответы:

666

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

ii .

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

Invoke-Item .

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

EBGreen
источник
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")
codeape
источник
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.

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

20B2
источник
23

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

Invoke-Item .
tomasr
источник
Псевдоним для этого является II.
VivekDev
20
explorer .
Даниэль Крейседер
источник
Это то, чем я пользуюсь годами, но в последнее время explorerкажется, что я не в своем направлении
DaveD
18

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

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

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

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

shovavnik
источник
10
$startinfo = new-object System.Diagnostics.ProcessStartInfo 
$startinfo.FileName = "explorer.exe"
$startinfo.WorkingDirectory = 'D:\foldername'

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

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

Alex
источник
1
Я не знаю, почему за это проголосовали - я вижу, что не проголосовал за отсутствие элегантности, но это все же хороший (хотя и многословный) ответ :) Вы получаете мой UP.
промах
1
Я согласен. Это намного больше кода, но он обеспечивает некоторую гибкость.
Майк Шепард
Когда я использую этот код, он открывает Проводник, но не каталог, который я передал как WorkingDirectory. Он просто открывает папку «Библиотеки». Ответ шовавник представлен правильно в одну строку.
Phoenix14830
4
start explorer.exe 

Простая однострочная команда

powershelluser
источник
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")
Beej
источник