以下の内容はhttps://tech.guitarrapc.com/entry/2013/04/02/210454より取得しました。


PowerShellでフォルダを開く

ふと思ってアレもしかして意外とまとめられてない? と思ったので。 cmd/batchならexplorerパスやstartパスですが……さてコマンドレットで開くには?

PowerShell上のカレントディレクトリを開く

つべこべ言わず今のフォルダを開きたい。 そんな方はこれで。

Invoke-Item .

あるいはこれでも

Start-Process .

もっと短い方がいいならこれ。

ii .

あるいはcmd風にこれでも。

start .

[I/O.FileInfo[]]として渡すなら

パスオブジェクトを開く場合は、Invoke-Itemで起動します。 つまりこう。

$pathObject = [IO.FileInfo[]]"D:\"
Invoke-Item $pathObject

この時、Start-Processを使うとエラーが出るので注意!

$pathObject = [IO.FileInfo[]]"D:\"
Start-Process $pathObject

理由はまんまですね、Start-ProcessにはStringを渡す必要があるのです。

Start-Process : パラメーター 'FilePath' で必要とされる型 'System.String''System.IO.FileInfo[]' を変換できません。指定されたメソッドはサポートされていません。
発生場所 行:1 文字:15
+ Start-Process $pathObject
+         ~~~~~~~~~~~
  + CategoryInfo      : InvalidArgument: (:) [Start-Process]、ParameterBindingException
  + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.StartProcessCommand

[string[]]として渡すなら

では、文字列と渡した場合は、どうしましょう。 実は、Invoke-Itemは優秀で、パスオブジェクトではなく文字列でもいけちゃいます。

$pathString = "D:\"
Invoke-Item $pathString

そして先ほどのStart-Process、これもエクスプローラーを起動できます。

$pathString = "D:\"
Start-Process $pathString

まとめ

フォルダを開くなら、Invoke-Itemがベストですね。

お好きなやり方でどうぞ。

$pathObject = [IO.FileInfo[]]"D:\"
Invoke-Item $pathObject
ii $pathObject

$pathString = "D:\"
Invoke-Item $pathString
ii $pathString
Start-Process $pathString
Start $pathString

Invoke-Item .
ii .

Start-Process .
start .



以上の内容はhttps://tech.guitarrapc.com/entry/2013/04/02/210454より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14