Batya

|
Posted: Tue Apr 26, 2011 13:45 Post subject: |
|
|
Мои 5 копеек - vbs-скрипт:
Code: | '=====================================================================
' Изменение атрибута у отмеченных файлов и папок (файлов в них)
' Параметры:
' {файл-список} {битовый флаг атрибута} [{режим}]
' где {режим} может принимать значения:
' 0 - смена атрибута (по умолчанию),
' 1 - установка атрибута,
' 2 - снятие атрибута.
' Наиболее часто используемые значения {битовый флаг атрибута}:
' 1 - только чтение,
' 2 - скрытый,
' 4 - системный,
' 32 - архивный.
' Пример параметров вызова из TC (установка атрибута "Скрытый"):
' %L 2 1
' Автор - Batya
'=====================================================================
Option Explicit
Dim FSO, StreamFile, Selected, CurrFolder, Attr, Mode
Set FSO = CreateObject("Scripting.FileSystemObject")
With WScript
Set StreamFile = FSO.OpenTextFile(.Arguments(0), 1)
Attr = .Arguments(1)
If .Arguments.Count < 3 Then
Mode = 0
Else
Mode = CInt(.Arguments(2))
End If
End With
Do While Not StreamFile.AtEndOfStream
Selected = StreamFile.ReadLine
If FSO.FileExists(Selected) Then
ChangeAttr FSO.GetFile(Selected)
End If
If FSO.FolderExists(Selected) Then
Set CurrFolder = FSO.GetFolder(Selected)
ChangeAttr CurrFolder
FolderProcess CurrFolder
End If
Loop
'MsgBox("Выполнено!")
Set FSO = Nothing
Set StreamFile = Nothing
Set CurrFolder = Nothing
Wscript.Quit()
Sub FolderProcess(CurrFolder)
Dim f
For Each f in CurrFolder.SubFolders
ChangeAttr f
FolderProcess f
Next
For Each f in CurrFolder.Files
ChangeAttr f
Next
End Sub
Sub ChangeAttr(pFObj)
With pFObj
Select Case Mode
Case 0 .Attributes = .Attributes Xor Attr
Case 1 .Attributes = .Attributes Or Attr
Case 2 .Attributes = .Attributes And Not Attr
End Select
End With
End Sub
|
_________________ Нет, я не сплю. Я просто медленно моргаю.
Last edited by Batya on Tue Apr 26, 2011 16:01; edited 1 time in total |
|