PowerShellで8.3形式の短いファイル名を取得する

| 2009年10月1日木曜日
短いファイル名を取得するには、kernel32.dllのGetShortPathNameメソッドを呼べばわかるんだけど、それをPowerShellからやると面倒そうなので、Scripting.FileSystemObjectを利用してみる。

ここでは、Excelの実行ファイルを取得してみる。


> $fso = New-Object -comObject Scripting.FileSystemObject
> $fso.GetFile("C:\Program Files\Microsoft Office\Office12\EXCEL.EXE")

Path : C:\Program Files\Microsoft Office\Office12\EXCEL.EXE
Name : EXCEL.EXE
ShortPath : C:\PROGRA~1\MICROS~2\Office12\EXCEL.EXE
ShortName : EXCEL.EXE
Drive : System.__ComObject
ParentFolder : System.__ComObject
Attributes : 32
DateCreated : 2009/05/04 8:40:04
DateLastModified : 2009/05/04 8:40:04
DateLastAccessed : 2009/06/11 7:18:21
Size : 18333536
Type : アプリケーション


> ($fso.GetFile("C:\Program Files\Microsoft Office\Office12\EXCEL.EXE")).ShortPath

C:\PROGRA~1\MICROS~2\Office12\EXCEL.EXE


短いファイル名を取得したかった理由はレジストリに設定するためだったのでこれで十分いけそうだ。

0 コメント: