Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Обмен кнопками 
Author Message
Batya



PostPosted: Tue Mar 14, 2006 17:27    Post subject: Reply with quote

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
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group