PDA

Показать полную графическую версию : Изменить вид папки с помощью bat


ruslaw
10-04-2014, 18:48
Можно ли определить вид папки (список, таблица и т.п.) bat(js, vbs)-файлом, помещенным в эту папку?
Соответственно желательно так же относительный путь.

Iska
10-04-2014, 22:53
Только в случае запуска скрипта из открытого окна Проводника:
Option Explicit

Dim objFolderViewMode


Set objFolderViewMode = WScript.CreateObject("Scripting.Dictionary")

With objFolderViewMode
.Add 1, "Icon"
.Add 2, "Small Icon"
.Add 3, "List"
.Add 4, "Details"
.Add 5, "Thumbnail"
.Add 6, "Tile"
.Add 7, "Thumbstrip"
.Add 8, "Content"
End With

With WScript.CreateObject("Shell.Application")
With .Windows.Item()
If TypeName(.Document) = "IShellFolderViewDual2" Then
With .Document
WScript.Echo .Folder.self.Path, objFolderViewMode.Item(CInt(.CurrentViewMode))
End With
End If
End With
End With

objFolderViewMode.RemoveAll
Set objFolderViewMode = Nothing

WScript.Quit 0

ruslaw
11-04-2014, 13:13
Спасибо. Но скрипт выдает окно с данными о полном пути и виде папки, тогда как моя потребность состоит в том, чтобы этот вид изменить, например на "Список" (List)

Iska
11-04-2014, 16:42
Но скрипт выдает окно с данными о полном пути и виде папки, тогда как моя потребность состоит в том, чтобы этот вид изменить »
Я ничего не видел о том, чтобы «изменить». Напротив, было:
Можно ли определить вид папки (список, таблица и т.п.) »

Пробуйте:
Option Explicit

' enum FOLDERVIEWMODE
Const FVM_ICON = 1
Const FVM_SMALLICON = 2
Const FVM_LIST = 3
Const FVM_DETAILS = 4
Const FVM_THUMBNAIL = 5
Const FVM_TILE = 6
Const FVM_THUMBSTRIP = 7
Const FVM_CONTENT = 8

With WScript.CreateObject("Shell.Application")
With .Windows.Item()
If TypeName(.Document) = "IShellFolderViewDual2" Then
.Document.CurrentViewMode = FVM_LIST
End If
End With
End With

WScript.Quit 0

ruslaw
12-04-2014, 10:57
Спасибо! Все отлично сработало.




© OSzone.net 2001-2012