PowerShellからWindows Explorerウィンドウを開くことはできますか?


304

これは可能だと思いますが、どうすればいいのかわかりません。

手がかりはありますか?

回答:


666

使用する:

ii .

の略

Invoke-Item .

これは、PowerShellコマンドラインで入力する最も一般的なものの1つです。


3
誰もこの最も簡単な答えに答えなかったのはおかしいですが、あなたです :)
halr9000 2008年

15
私はとても単純な人です。
EBGreen、2008

85
このコマンドは、Invoke-Itemの略です。後のドットは任意のパスにすることができます。
M.ダドリー

素晴らしく、非常にシンプルな答え!私はそれが好きです。
アンソニーリリアーノ

したがって、デフォルトの最初のパラメータiiexplorer、2番目のパラメータはパスです。
Timo

145

いくつかのオプションがあります。

例:

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
次も実行できます:invoke-item c:\ path \
x0n

これは、ここで最も説明が豊富で最も有益な回答であり、ここには他の賛成投票の回答、特に「ii」も含める必要があります。
DaveD

iiの別名ですInvoke-Item
Kolob Canyon

32

次のいずれかを使用します。

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

PowerShellでこれらのコマンドを適用できます。

コマンドプロンプトからエクスプローラを開く場合に備えて、最後の2つのコマンドは機能せず、最初の3つのコマンドは正常に機能します。


23

Invoke-Itemコマンドレットを使用するだけです。たとえば、現在のディレクトリでエクスプローラーウィンドウを開きたい場合は、次のようにします。

Invoke-Item .

その別名はiiです。
VivekDev


18

私はPowerShellのからエクスプローラウィンドウを開くための方法を探してこの質問に出くわしたとのファイルを選択します。同じ理由で他の人がそれに遭遇した場合に備えて、この回答を追加します。

エクスプローラを起動してファイルを選択するには、次を使用しますInvoke-Expression

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

これを行う方法は他にもあると思いますが、これでうまくいきました。


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

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

お役に立てれば


1
なぜこれが反対票を投じられているのかはわかりません-優雅さの欠如のために反対票を投じないのはわかりますが、それでも良い(冗長な言葉ですが)答えです:)あなたは私の賛成票を獲得します。
slipsec 2008年

1
同意する。はるかに多くのコードですが、ある程度の柔軟性が得られます。
マイクシェパード

このコードを使用すると、エクスプローラーが開きますが、WorkingDirectoryとして渡したディレクトリは開きません。Librariesフォルダーを開くだけです。shovavnikが提出した回答は、1行で正しく実行されます。
Phoenix14830


2

これをコメントとして書きたかったのですが、50の評判がありません。

このスレッドの答えはすべて、基本的にInvoke-Itemを使用するか、explorer.exeを直接使用することです。ただし、これは「フォルダーを開く」と完全に同義ではないため、質問が示すようにエクスプローラーウィンドウを開くことに関して、特定のファイルに回答を適用したい場合、質問はまだ実際には回答されていません。

例えば、

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

^これらの2つのコマンドを実行すると、C:\ Users \ Foo \(含まれているディレクトリ)のexplorer.exeウィンドウではなく、Notepad.exeまたはFirefox.exeがそれぞれ2つのファイルで呼び出されます。

一方、Powershellからこのコマンドを発行している場合、これは大したことではありません(とにかく入力する必要はありません)。スクリプトで変数に対して「フォルダーを開く」必要がある場合、ディレクトリを抽出するために文字列照合の問題になります。ファイルへの絶対パス。

変数を置き換えることができるような単純なコマンド「Open-Containing-Folder」はありませんか?

例えば、

$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

基本的に同じですが、Powershellコマンドレットですべてを保持する代替手段:ii(Split-Path "C:\ temp \ file.txt")
EBGreen

0

これは、既存のエクスプローラーウィンドウでフォルダーをQuizoタブとして開くという私の固有の制約に適合する唯一のものです。

$objShell = New-Object -ComObject "Shell.Application"
$objShell.Explore("path")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.