2008-11-26 27 views

Trả lời

357

Sử dụng:

ii . 

Đây là một trong những điều chung nhất mà tôi gõ vào lệnh PowerShell hàng.

+0

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 nhưng bạn. :) – halr9000

+8

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

+37

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

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

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

Hope this helps

+0

Tôi không biết tại sao điều này là nhận được bình chọn xuống - Tôi có thể nhìn thấy không bỏ phiếu nó lên cho sự thiếu sang trọng, nhưng nó vẫn là một tốt (mặc dù wordy) trả lời :) Bạn nhận được UP của tôi. – slipsec

+1

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

19

Chỉ cần sử dụng lệnh invoke-item. 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 . 
14
explorer . 
+0

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

108

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

  • Powershell tìm kiếm thực thi trong đường dẫn của bạn, chỉ cần như cmd.exe. Vì vậy, bạn có thể chỉ cần gõ thám hiểm trên dấu nhắc powershell. Sử dụng phương pháp này, bạn cũng có thể chuyển đối số cmd-line (xem http://support.microsoft.com/kb/314853)
  • Lệnh ghép ngắn Invoke-Item cung cấp cách chạy tệp thi hành hoặc mở tệp (hoặc tập hợp tệp) từ 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

+0

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

+0

Đây phải là câu trả lời đúng. –

4

Bắt đầu explorer.exe

Simple dòng lệnh

+0

"bắt đầu". cũng hoạt động như –

12

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

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

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

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

2

Tôi muốn viết thư này làm nhận xét 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 explorer.exe trực tiếp; tuy nhiên, điều này không hoàn toàn đồng nghĩa với "thư mục chứa mở", do đó, về việc mở cửa sổ Explorer như câu hỏi nêu rõ, nếu chúng ta muốn áp dụng câu trả lời cho một tập tin cụ thể 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ẽ cho kết quả trong Notepad.exe hoặc firefox.exe được gọi vào hai tập tin tương ứng, không phải là một cửa sổ explorer.exe vào C: \ Users \ Foo \ (thư mục chứa).

Trong khi nếu một người phát hành lệnh này từ PowerShell, điều này sẽ không có vấn đề gì (nếu gõ ít hơn), nếu một tập lệnh và cần "mở thư mục chứa" trên một biến, nó sẽ trở thành vấn đề của chuỗi trích xuất thư mục từ đường dẫn đầy đủ đến tệp.

Không có lệnh đơn giản "Open-Containing-Folder" 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 
+1

Invoke-Item ([io.fileinfo] "C: \ temp \ file.txt"). Thư mục –

+0

Một giải pháp thay thế về cơ bản là giống nhau nhưng giữ tất cả trong lệnh ghép ngắn Powershell: *** ii (Split-Path) "C: \ temp \ file.txt") *** – EBGreen

2

Sử dụng dòng này:

invoke-item c:\path 
7

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ỳ các lệnh trong PowerShell.

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

0

Đây là điều duy nhất mà phù hợp với ràng buộc duy nhất của tôi

$objShell = New-Object -ComObject "Shell.Application" 
$objShell.Explore("path") 
Các vấn đề liên quan