2008-11-26 13 views

Odpowiedz

357

Zastosowanie:

ii . 

Jest to jedna z najczęstszych rzeczy wpisuję na polecenia PowerShell linia.

+0

To zabawne, że nikt nie odpowiedział na tę najprostszą odpowiedź, ale ty. :) – halr9000

+8

Jestem bardzo prostą osobą. – EBGreen

+37

To polecenie jest skrótem od Invoke-Item. Kropka po niej może być dowolną ścieżką. –

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

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

Nadzieja to pomaga

+0

Nie wiem, dlaczego to jest uzyskiwanie przegłosowana - Widzę go nie głosując za brak elegancji, ale to wciąż dobra (choć rozwlekła) odpowiedź :) Dostajesz moje UP. – slipsec

+1

Zgadzam się. Jest o wiele więcej kodu, ale pozwala na pewną elastyczność. –

19

Wystarczy użyć apletu polecenia Invoke-punkt. Na przykład, jeśli chcesz, aby otworzyć okno Explorer w bieżącym katalogu można zrobić:

invoke-item . 
14
explorer . 
+0

To jest to, czego używam od lat, ale ostatnio 'explorer' wydaje się być poza moją ścieżką – DaveD

108

Masz kilka opcji:

  • PowerShell wyszukuje pliki wykonywalne na swojej drodze, po prostu jak robi cmd.exe. Możesz więc po prostu wpisać explorer po znaku zachęty. Za pomocą tej metody można również przekazywać argumenty wiersza polecenia cmd (zobacz http://support.microsoft.com/kb/314853)
  • Polecenie cmdlet Invoke-Item umożliwia uruchomienie pliku wykonywalnego lub otwarcie pliku (lub zestawu plików) z poziomu Windows PowerShell. Alias: ii
  • użycie System.Diagnostics.Process

Przykłady:

 
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

Możesz także zrobić: invoke-item c: \ path \ – x0n

+0

To jest najlepiej sformułowana i najbardziej pouczająca odpowiedź tutaj, i powinny również zawierać inne przegłosowane odpowiedzi tutaj, szczególnie "ii." – DaveD

+0

To powinna być poprawna odpowiedź. –

4

start explorer.exe

Prosta linia pojedyncza komenda

+0

"start". działa również –

12

natknąłem to pytanie szuka sposobu, aby otworzyć okno Eksploratora z PowerShell i także wybierz plik. Dodaję tę odpowiedź na wypadek, gdyby inni napotkali ją z tego samego powodu.

Aby uruchomić Eksploratora i wybrać plik, użyj Invoke-Expression:

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

Istnieją zapewne inne sposoby, aby to zrobić, ale ten pracował dla mnie.

2

Chciałem napisać to jako komentarz, ale nie mam 50 punktów reputacji.

Wszystkie odpowiedzi w tym wątku dotyczą zasadniczo użycia elementu Invoke-Item lub bezpośredniego użycia programu explorer.exe; jednak nie jest to całkowicie równoznaczne z "otwartym folderem zawierającym", więc jeśli chodzi o otwarcie okna Eksploratora, jak stwierdza się w pytaniu, jeśli chcemy zastosować odpowiedź do konkretnego pliku, pytanie wciąż nie zostało odebrane.

np

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

^te dwa polecenia spowodowałoby Notepad.exe lub firefox.exe powołano się na dwóch plików odpowiednio, a nie okno explorer.exe na C: \ Users \ Foo \ (katalog zawierający).

Podczas gdy jeden wydał to polecenie z powershell, nie byłoby to nic wielkiego (pomijając wpisywanie), jeśli ktoś jest skryptem i musi "otworzyć zawierający folder" na zmiennej, staje się kwestią dopasowywania ciągów do wyodrębnij katalog z pełnej ścieżki do pliku.

Czy nie ma prostego polecenia "Open-Containing-Folder", że zmienna może być podstawiona?

np

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

+0

Alternatywa zasadniczo taka sama, ale zachowuje wszystko w cmdletach Powershell: *** ii (Split-Path "C: \ temp \ plik.txt") *** – EBGreen

2

Zastosowanie linię:

invoke-item c:\path 
7

wykorzystać dowolne z następujących objawów:

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

Można zastosować dowolny z tych poleceń PowerShell.

Na wypadek, gdybyś chciał otworzyć eksplorację z wiersza poleceń, ostatnie dwa polecenia nie działają, a pierwsze trzy działają poprawnie.

0

Jest to jedyna rzecz, która pasuje moje unikalne ograniczeń

$objShell = New-Object -ComObject "Shell.Application" 
$objShell.Explore("path") 
Powiązane problemy