Có thể mở cửa sổ Windows Explorer từ PowerShell không?


304

Tôi chắc chắn điều này phải có thể, nhưng tôi không thể tìm ra cách để làm điều đó.

Bất kì manh mối nào?

Câu trả lời:


666

Sử dụng:

ii .

viết tắt của

Invoke-Item .

Đây là một trong những điều phổ biến nhất mà tôi gõ tại dòng lệnh PowerShell.


3
Thật buồn cười khi không ai trả lời câu trả lời đơn giản nhất này ngoài bạn. :)
halr9000

15
Tôi là một người rất đơn giản.
EBGreen

85
Lệnh này là viết tắt của Invoke-Item. Dấu chấm sau nó có thể là bất kỳ con đường nào.
M. Dudley

Tuyệt vời, câu trả lời rất đơn giản! Tôi thích nó.
Anthony Liriano 27/03/18

Vì vậy, tham số đầu tiên mặc định iiexplorer, param thứ hai là đường dẫn.
Timo

145

Bạn có một vài lựa chọn:

  • Powershell tìm kiếm các tệp thực thi trong đường dẫn của bạn, giống như cmd.exe. Vì vậy, bạn chỉ có thể gõ explorer trên dấu nhắc powershell. Sử dụng phương pháp này, bạn cũng có thể truyền các đối số dòng cmd (xem http://support.microsoft.com/kb/314853 )
  • Các Invoke-mục cmdlet cung cấp một cách để chạy một tập tin thực thi hoặc để mở một tập tin (hay tập hợp các file) từ bên trong Windows PowerShell. Bí danh : ii
  • sử dụng system.diagnostics. process

Ví dụ:

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
Bạn cũng có thể làm: invoke-item c: \ path \
x0n

Đây là câu trả lời tốt nhất và nhiều thông tin nhất ở đây, và cũng nên bao gồm các câu trả lời nâng cao khác ở đây, đặc biệt là "ii."
DaveD

iilà bí danh củaInvoke-Item
Kolob Canyon

32

Sử dụng bất kỳ trong số này:

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

Bạn có thể áp dụng bất kỳ lệnh nào trong PowerShell.

Chỉ trong trường hợp bạn muốn mở trình thám hiểm từ dấu nhắc lệnh, hai lệnh cuối không hoạt động và ba lệnh đầu tiên hoạt động tốt.


23

Chỉ cần sử dụng Invoke-Itemlệnh ghép ngắn. Ví dụ: nếu bạn muốn mở một cửa sổ thám hiểm trên thư mục hiện tại, bạn có thể làm:

Invoke-Item .

Một bí danh cho điều đó là ii.
VivekDev

20
explorer .

Đây là những gì tôi đã sử dụng trong nhiều năm, nhưng gần đây explorerdường như nằm ngoài con đường của tôi
DaveD

18

Tôi bắt gặp câu hỏi này để tìm cách mở cửa sổ Explorer từ PowerShell và cũng chọn một tệp. Tôi đang thêm câu trả lời này trong trường hợp những người khác đi qua nó vì lý do tương tự.

Để khởi chạy Explorer và chọn một tệp, sử dụng Invoke-Expression:

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

Có lẽ có nhiều cách khác để làm điều này, nhưng điều này làm việc cho tôi.


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

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

Hi vọng điêu nay co ich


1
Tôi không biết lý do tại sao điều này lại bị bỏ phiếu - Tôi có thể thấy không bỏ phiếu cho sự thiếu thanh lịch, nhưng nó vẫn là một câu trả lời tốt (dù dài dòng) :) Bạn nhận được LÊN của tôi.
slipsec

1
Tôi đồng ý. Đó là nhiều mã hơn, nhưng nó cho phép một số linh hoạt.
Mike Shepard

Khi tôi sử dụng mã này, nó sẽ mở Explorer, nhưng không phải là thư mục mà tôi đã chuyển qua làm WorkDirectory. Nó chỉ mở thư mục Thư viện. Câu trả lời mà shovavnik đã gửi sẽ thực hiện chính xác trong một dòng.
Phoenix14830


2

Tôi muốn viết bài này như một bình luận nhưng tôi không có 50 danh tiếng.

Tất cả các câu trả lời trong chuỗi này về cơ bản là sử dụng Invoke-Item hoặc sử dụng trực tiếp explorer.exe; tuy nhiên, điều này không hoàn toàn đồng nghĩa với "thư mục chứa mở", vì vậy về mặt mở cửa sổ Explorer như trạng thái câu hỏi, nếu chúng tôi muốn áp dụng câu trả lời cho một tệp cụ thể, câu hỏi vẫn chưa thực sự được trả lời.

ví dụ,

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

^ hai lệnh đó sẽ dẫn đến Notepad.exe hoặc Firefox.exe được gọi trên hai tệp tương ứng, không phải là cửa sổ explorer.exe trên C: \ Users \ Foo \ (thư mục chứa).

Trong khi nếu một người đã ban hành lệnh này từ powershell, thì đây sẽ không phải là vấn đề lớn (dù sao cũng ít gõ hơn), nếu một người đang viết kịch bản và cần "mở thư mục chứa" trên một biến, nó trở thành vấn đề khớp chuỗi để trích xuất thư mục từ đường dẫn đầy đủ đến tập tin.

Không có lệnh đơn giản "Thư mục chứa mở" sao cho một biến có thể được thay thế?

ví dụ,

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

2
Gọi-Mục ([io.fileinfo] "C: \ temp \ file.txt"). Thư mục
Dave_J

Một thay thế về cơ bản là giống nhau nhưng giữ tất cả trong các lệnh ghép ngắn Powershell: ii (Đường dẫn phân chia "C: \ temp \ file.txt")
EBGreen

0

Đây là điều duy nhất phù hợp với các ràng buộc duy nhất của tôi là muốn thư mục mở dưới dạng Tab Quizo trong bất kỳ cửa sổ Explorer hiện có nào.

$objShell = New-Object -ComObject "Shell.Application"
$objShell.Explore("path")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.