Apakah mungkin untuk membuka jendela Windows Explorer dari PowerShell?


304

Saya yakin ini harus dimungkinkan, tetapi saya tidak bisa mengetahui bagaimana cara melakukannya.

Ada petunjuk?

Jawaban:


666

Menggunakan:

ii .

yang merupakan kependekan dari

Invoke-Item .

Ini adalah salah satu hal paling umum yang saya ketik di baris perintah PowerShell.


3
Lucu bahwa tidak ada yang menjawab jawaban paling sederhana ini selain Anda. :)
halr9000

15
Saya orang yang sangat sederhana.
EBGreen

85
Perintah ini adalah kependekan dari Invoke-Item. Titik setelahnya bisa berupa jalur apa saja.
M. Dudley

Luar biasa, jawaban yang sangat sederhana! Saya suka itu.
Anthony Liriano

Jadi parameter pertama default iiadalah explorer, param kedua adalah path.
Timo

145

Anda punya beberapa pilihan:

  • Powershell mencari executable di path Anda, seperti halnya cmd.exe. Jadi, Anda bisa mengetik explorer di prompt PowerShell. Dengan menggunakan metode ini, Anda juga dapat memberikan argumen cmd-line (lihat http://support.microsoft.com/kb/314853 )
  • The Invoke-Item cmdlet menyediakan cara untuk menjalankan file eksekusi atau untuk membuka sebuah file (atau set file) dari dalam Windows PowerShell. Alias : ii
  • gunakan system.diagnostics.process

Contoh:

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
Anda juga dapat melakukan: invoke-item c: \ path \
x0n

Ini adalah jawaban terbaik dan paling informatif di sini, dan juga harus mencakup jawaban tervvotifikasi lainnya di sini, terutama "ii."
DaveD

iiadalah aliasInvoke-Item
Kolob Canyon

32

Gunakan salah satu dari ini:

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

Anda dapat menerapkan salah satu dari perintah ini di PowerShell.

Kalau-kalau Anda ingin membuka explorer dari command prompt, dua perintah terakhir tidak berfungsi, dan tiga yang pertama berfungsi dengan baik.


23

Cukup gunakan Invoke-Itemcmdlet. Misalnya, jika Anda ingin membuka jendela explorer pada direktori saat ini yang dapat Anda lakukan:

Invoke-Item .

Alias ​​untuk itu adalah ii.
VivekDev

20
explorer .

Ini adalah apa yang telah saya gunakan selama bertahun-tahun, tetapi baru-baru ini explorertampaknya berada di luar jalur saya
DaveD

18

Saya menemukan pertanyaan ini mencari cara untuk membuka jendela Explorer dari PowerShell dan juga memilih file. Saya menambahkan jawaban ini kalau-kalau orang lain menemukannya karena alasan yang sama.

Untuk meluncurkan Explorer dan memilih file, gunakan Invoke-Expression:

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

Mungkin ada cara lain untuk melakukan ini, tetapi ini berhasil untuk saya.


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

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

Semoga ini membantu


1
Saya tidak tahu mengapa ini ditolak - Saya dapat melihat tidak memberikan suara untuk kurangnya keanggunan, tapi itu masih jawaban yang baik (meskipun bertele-tele) :) Anda mendapatkan UP saya.
slipsec

1
Saya setuju. Ini lebih banyak kode, tetapi memungkinkan beberapa fleksibilitas.
Mike Shepard

Ketika saya menggunakan kode ini, itu membuka Explorer, tetapi bukan direktori yang saya berikan sebagai WorkingDirectory. Itu hanya membuka folder Libraries. Jawaban yang dikirimkan shovavnik melakukannya dengan benar dalam satu baris.
Phoenix14830


2

Saya ingin menulis ini sebagai komentar tetapi saya tidak memiliki 50 reputasi.

Semua jawaban di utas ini pada dasarnya menggunakan Invoke-Item atau menggunakan explorer.exe secara langsung; Namun, ini tidak sepenuhnya identik dengan "folder yang berisi terbuka", jadi dalam hal membuka jendela Explorer seperti yang dinyatakan pertanyaan, jika kami ingin menerapkan jawaban ke file tertentu, pertanyaannya masih belum benar-benar dijawab.

misalnya,

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

^ kedua perintah itu akan menghasilkan Notepad.exe atau Firefox.exe yang dipanggil pada dua file masing-masing, bukan jendela explorer.exe pada C: \ Users \ Foo \ (direktori yang berisi).

Sedangkan jika seseorang mengeluarkan perintah ini dari PowerShell, ini bukan masalah besar (apalagi mengetik), jika seseorang membuat skrip dan perlu "membuka folder yang berisi" pada variabel, itu menjadi masalah pencocokan string untuk mengekstrak direktori dari path lengkap ke file.

Apakah tidak ada perintah sederhana "Open-Containing-Folder" sehingga variabel bisa diganti?

misalnya,

$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"). Directory
Dave_J

Alternatif yang pada dasarnya sama tetapi menyimpan semuanya dalam cmdlet Powershell: ii (Jalur-Split "C: \ temp \ file.txt")
EBGreen

0

Ini adalah satu-satunya hal yang sesuai dengan batasan unik saya ingin folder dibuka sebagai Tab Quizo di jendela Explorer yang ada.

$objShell = New-Object -ComObject "Shell.Application"
$objShell.Explore("path")
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.