Batya

|
Posted: Tue Mar 14, 2006 17:27 Post subject: |
|
|
Zorroz wrote: | 2Batya
Спасибо за скрипт!!! Файлы скрываются, все ОК.
Но он не работает на папках, почему-то. |
А я для папок и не менял атрибуты. Только для файлов в них.
Если это надо, то кнопка:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\SetAttr.vbs
%L 2
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Установка атрибута "Скрытый"
-1 |
Скрипт (немного поправленный и обобщенный) SetAttr.vbs:
Code: | '=====================================================================
' Установка атрибута у отмеченных файлов и папок (файлов в них)
' В параметрах вызова из TC должно быть прописано:
' %L {битовый флаг атрибута}
' например, для атрибута "Hidden" ("Скрытый"):
' %L 2
'=====================================================================
Dim FSO, StreamFile
Set FSO = CreateObject("Scripting.FileSystemObject")
Set StreamFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
Dim Selected, CurrFile, CurrFolder, Attr
Attr = WScript.Arguments(1)
Do While Not StreamFile.AtEndOfStream
Selected = StreamFile.ReadLine
If FSO.FileExists(Selected) Then
Set CurrFile = FSO.GetFile(Selected)
CurrFile.Attributes = CurrFile.Attributes Or Attr
End If
If FSO.FolderExists(Selected) Then
Set CurrFolder = FSO.GetFolder(Selected)
CurrFolder.Attributes = CurrFolder.Attributes Or Attr
FolderProcess(CurrFolder)
End If
Loop
'MsgBox("Выполнено!")
Set FSO = Nothing
Set StreamFile = Nothing
Set CurrFile = Nothing
Set CurrFolder = Nothing
Wscript.Quit()
Function FolderProcess(CurrFolder)
Dim sf, f
For Each sf in CurrFolder.SubFolders
sf.Attributes = sf.Attributes Or Attr
FolderProcess(sf)
Next
For Each f in CurrFolder.Files
f.Attributes = f.Attributes Or Attr
Next
End Function |
Last edited by Batya on Tue Mar 14, 2006 17:38; edited 1 time in total |
|