Flasher

|
Posted: Fri Jun 09, 2017 18:46 Post subject: |
|
|
Riabchik wrote: | Прошу прощения но я не знаю куда применять этот параметр. | Я для чего тут ссылку давал? Чтобы её в очередной раз проигнорировать? В п. 5 всё разжёвано:
Памятка wrote: | Если в шапке скрипта указаны параметры, откройте диалог настройки новой кнопки (через контекстное меню) или пользовательской команды и в поле "Параметры:" впишите заданные. |
Сделал, чтобы файлы только для чтения тоже обнулялись. Или не надо было? Просто я не вижу особого смысла в спотыкаче с вопросом на каждом таком файле.
 Есть ещё вариант с дополнением фильтрации и рекурсии в выбранных папках: Code: | '••••••••••••••••••• VBS •••••••••••••••••••
' Обнулить выбранные в активной панели
' или в структурах выбранных каталогов файлы
' Параметры: %WL <маска файлов> <рекурсия:1>
' Примеры: %WL | %WL *.txt;*.log 1
'••••••••••••••••••••••••••••• Flasher © •••
With WSH.Arguments
C = .Count : If C = 0 Then WSH.Quit
List = .Item(0) : If C > 1 Then Mask = .Item(1)
If C = 3 Then Rec = .Item(2)
End With : Title = " Обнуление файлов "
If Msgbox("Выбранные файлы будут обнулены." & vbCr &"Вы" &_
" уверены, что хотите продолжить?", 4132, Title) <> 6 Then WSH.Quit
Dim x : If Mask = "" Then Mask = "*.*"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ShAp = CreateObject("Shell.Application")
Set List = FSO.OpenTextFile(List,,,-1)
Do : F = List.ReadLine : If Len(F) > 259 Then F = "\\?\" & F
If FSO.FileExists(F) Then
If Mask = "*.*" Or InStr(";" & Mask &_
";", ";*." & FSO.GetExtensionName(F) & ";") Then FFile F
ElseIf FSO.FolderExists(F) Then FFolder F End If
Loop Until List.AtEndOfStream : List.Close
If x Then Text = "Число обнулённых файлов: " & x : N = 4160 _
Else Text = "Подходящие объекты не выбраны!" : N = 4144
CreateObject("WScript.Shell").Popup Text, 2, Title, N
Sub FFolder(Fold)
Set Items = ShAp.Namespace(Fold).Items
Items.Filter 73952, Mask
If Items.Count Then
For Each I in Items
If FSO.FileExists(I.Path) Then FFile I.Path
Next
End If : If Rec = 1 Then _
For Each Fd in FSO.GetFolder(Fold).SubFolders : FFolder Fd.Path : Next
End Sub
Sub FFile(File)
With FSO.GetFile(File)
If .Size Then
x = x + 1 : A = .Attributes
If (A And 1) = 1 Then .Attributes = A - 1 : R = 1
.OpenAsTextStream(2).Close : If R Then .Attributes = A
End If
End With
End Sub |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Fri Jun 23, 2017 12:27; edited 2 times in total |
|