« ファイル名をエクスプローラと同じ順序にソートする。 | トップページ | PowerShellでファイルやフォルダをごみ箱に捨てる。(XP) »

2007年12月11日 (火)

ファイル名をエクスプローラと同じ順序にソートする。(その2)

XPより前、2000のエクスプローラの並び順にするときは、エクスプローラでなく、Shell.Applicationを使います。

先のものがそれぞれ以下のようになります。以下、CScript.exeで実行のこと。

FolderName="フルパス"
Set Shell=CreateObject("Shell.Application")
Set Folder=Shell.NameSpace(FolderName)
For Each FolderItem In Folder.Items()
  WScript.Echo FolderItem.Name
Next

FolderName="フルパス"
Set fso=CreateObject("Scripting.FileSystemObject")
Set Shell=CreateObject("Shell.Application")
Set Folder=Shell.NameSpace(FolderName)
For Each FolderItem In Folder.Items()
  If FolderItem.Type<>"ファイル フォルダ" Then
    WScript.Echo fso.GetFileName(FolderItem.Path)
  End if
Next

FolderName="フルパス"
Set fso=CreateObject("Scripting.FileSystemObject")
Set Shell=CreateObject("Shell.Application")
Set Folder=Shell.NameSpace(FolderName)
For Each FolderItem In Folder.Items()
  If FolderItem.Type="ファイル フォルダ" Then
  ElseIf LCase(fso.GetExtensionName(FolderItem.Path))="txt" Then
    WScript.Echo fso.GetFileName(FolderItem.Path)
  End If
Next

« ファイル名をエクスプローラと同じ順序にソートする。 | トップページ | PowerShellでファイルやフォルダをごみ箱に捨てる。(XP) »