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?

Lachmania
sumber

Jawaban:

666

Menggunakan:

ii .

yang merupakan kependekan dari

Invoke-Item .

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

EBGreen
sumber
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")
kode kode
sumber
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.

20B2
sumber
23

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

Invoke-Item .
tomasr
sumber
Alias ​​untuk itu adalah ii.
VivekDev
20
explorer .
Daniel Kreiseder
sumber
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.

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

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

Semoga ini membantu

Alex
sumber
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
4
start explorer.exe 

Perintah baris tunggal sederhana

PowerShelluser
sumber
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
T Sandwich
sumber
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")
Beej
sumber