Можно ли открыть окно Windows Explorer из PowerShell?

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

Любые подсказки?

Ответ 1

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

ii .

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

Ответ 2

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

  • 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")

Ответ 3

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

invoke-item .

Ответ 4

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

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

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

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

Ответ 5

explorer .

Ответ 6

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

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

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

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

Ответ 7

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

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

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

Ответ 8

Запустите explorer.exe

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

Ответ 9

Используйте эту строку:

invoke-item c:\path

Ответ 10

Я хотел написать это как комментарий, но у меня нет 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, это было бы неважно (без ввода текста), если вы работаете с сценарием и нужно "открыть содержащую папку" для переменной, это становится вопросом соответствия строк, чтобы извлечь каталог из полного пути к файлу.

Нет ли простой команды "Open-Containing-Folder", чтобы можно было заменить переменную?

например,

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

Ответ 11

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

$objShell = New-Object -ComObject "Shell.Application"
$objShell.Explore("path")