Можно ли открыть окно проводника Windows из PowerShell? - PullRequest
234 голосов
/ 26 ноября 2008

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

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

Ответы [ 11 ]

518 голосов
/ 26 ноября 2008

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

ii .

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

129 голосов
/ 26 ноября 2008

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

  • 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")
20 голосов
/ 26 ноября 2008

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

invoke-item .
16 голосов
/ 07 апреля 2017

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

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

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

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

14 голосов
/ 26 ноября 2008
explorer .
13 голосов
/ 28 августа 2012

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

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

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

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

10 голосов
/ 26 ноября 2008
$startinfo = new-object System.Diagnostics.ProcessStartInfo 
$startinfo.FileName = "explorer.exe"
$startinfo.WorkingDirectory = 'D:\foldername'

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

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

4 голосов
/ 15 ноября 2016

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

invoke-item c:\path
4 голосов
/ 23 апреля 2010

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

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

2 голосов
/ 26 августа 2016

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