Чи можливо відкрити вікно Провідника Windows від PowerShell?


304

Я впевнений, що це повинно бути можливим, але я не можу дізнатися, як це зробити.

Будь-які підказки?

Відповіді:


665

Використання:

ii .

чого коротко

Invoke-Item .

Це одна з найпоширеніших речей, яку я набираю в командному рядку PowerShell.


3
Смішно, що ніхто не відповідав на цю найпростішу відповідь, крім вас. :)
halr9000

15
Я дуже проста людина.
EBGreen

85
Ця команда є коротким для Invoke-Item. Крапкою після неї може бути будь-який шлях.
М. Дадлі

Дивовижна, дуже проста відповідь! Мені це подобається.
Ентоні Ліріано

Отже, перший параметр за замовчуванням iiє explorer, другий параметр - шлях.
Тимо

145

У вас є кілька варіантів:

  • Powershell шукає виконувані файли на вашому шляху, як і cmd.exe. Таким чином, ви можете просто ввести провідник у вікні powerhell. Використовуючи цей метод, ви також можете передавати аргументи 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, а також вибрати файл. Я додаю цю відповідь у випадку, якщо інші натрапляють на неї з тієї ж причини.

Щоб запустити Провідник і вибрати файл, використовуйте 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
Я не знаю, чому це стає голосуванням - я бачу, як не проголосував це за відсутність елегантності, але це все-таки хороша (хоча багатослівна) відповідь :) Ви отримуєте мій ВП.
сліпсек

1
Я згоден. Це набагато більше коду, але він дозволяє деяку гнучкість.
Майк Шепард

Коли я використовую цей код, він відкриває Провідник, але не каталог, який я передав як WorkingDirectory. Він просто відкриває папку "Бібліотеки". Відповідь, яку подав шовник, робить це правильно в одному рядку.
Phoenix14830


2

Я хотів написати це як коментар, але у мене немає 50 репутації.

Усі відповіді в цій темі по суті полягають у використанні Invoke-Item або використанні Explor.exe безпосередньо; однак це не є повністю синонімом "відкрити папку, що містить", тому, з точки зору відкриття вікна Провідника, як зазначено в питанні, якщо ми хотіли застосувати відповідь до певного файлу, на це питання все ще не було відповіді.

наприклад,

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

^ ці дві команди призведуть до того, що Notepad.exe або Firefox.exe буде викликано у двох файлах відповідно, а не вікно Explor.exe на C: \ Users \ Foo \ (каталог, що містить).

Тоді як якщо хтось видав цю команду з powershell, це не буде великою справою (все одно менше набирати текст), якщо сценарій і потрібно "відкрити папку, що містить зміну", це стає предметом відповідності рядків для вилучення каталогу з повний шлях до файлу.

Чи не існує простої команди "Open-Contain-Folder", щоб змінна могла бути замінена?

наприклад,

$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 (Спліт-Шлях "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.