Скрипты для Total Commander
-
Скрипты - уникальный инструмент для достижения различных целей в работе с файлами и не только, особенно в файловом менеджере, даже если вы раньше об этом ничего не слышали и не знали, то путём простых движений вы можете оптимизировать свои действия
Тема тестирования скриптов создана для увеличения функциональности Total Commander
Всё это делается для тех, кто хочет экономить время и автоматизировать работу
Огромное спасибо участникам, авторам и всем повлиявшим на тему
#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#
В этой теме Каждый может выложить свой скрипт, написанный на любом языке: vbs, js, hta, au3,ahk, bat,cmd... - главное, чтобы он относился как-то к Total Commander, можно было им воспользоваться и к нему было должное описание к применению.
#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#
В теме "Тестирование и заказ скриптов" Каждый может протестировать, дать свой комментарий (все комментарии из этой темы будут удаляться)...если есть интересная идея, вы так же можете поделиться ей в соседней теме и заказать скрипт, а вдруг она покажется интересной для авторов...
#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#Сообщение отредактировал LonerD 25 апреля 2017 - 04:38Читайте: Справочные материалы по работе c TC + Онлайн справка TC
22 ноября 2011 - 13:03 / #1 -
Читайте: Справочные материалы по работе c TC + Онлайн справка TC
22 ноября 2011 - 14:43 / #2 -
NIconFolderInBuffer.vbs
Послать в буфер информацию о значке, присвоенном папки под курсором
Используется NirCmd.exe - файл можете скачать в шапке темы' NIconFolderInBuffer.vbs
'======================== Описание =====================================
' Послать в буфер информацию о значке, присвоенном папки под курсором
'======================== Параметры =====================================
' 1-й параметр: {путь\к\папке}
' 2-й параметр: 1 - путь значка
' 2 - путь+номер значка
' 3 - номер значка
' 4 - открытьDesktop.ini
'======================== Примеры =====================================
' %P%N 1
' используется FunctionsINIRWS.vbs
' Автор: Аверин Андрей
' Версия: 1.2 (07.01.2011 - 14.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'========================================================================
Option Explicit
'==================== Изменяемые пути ==================================
Const INI = "%COMMANDER_PATH%\Scripts\Include\FunctionsINIRWS.vbs"
Const NirCmd = "%COMMANDER_PATH%\NirCmd.exe"
'========================================================================
Const Titles = "Оправить информацию значка папки в буфер"
If WScript.Arguments.Count < 2 Then
WScript.Quit
MsgBox "Не хватает параметров!" & vbNewLine &_
"Должно быть минимум Два параметра!" & vbNewLine &_
"%P%N 1", vbOKOnly & vbCritical, Titles
End if
Dim FSO, WSH, Des, Icon, Path, PathIc, Param, Str, Folder, Tmp
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Execute FSO.OpenTextFile(GetPath(INI)).ReadAll
Folder = WScript.Arguments(0)
If Right(Folder, 1 ) <> "\" Then Folder = Folder & "\"
Des = Folder & "Desktop.ini"
Param = CInt(WScript.Arguments(1))
If Param = 4 Then
WSH.Run Chr(34) & Des & Chr(34) : WSFSEnd
End If
If FSO.FileExists(Des) Then
Icon = ReadINI(Des, ".ShellClassInfo", "IconIndex")
Path = ReadINI(Des, ".ShellClassInfo", "IconFile")
PathIc = Path & "," & Icon
If Icon = "" Or Path = "" Then
Icon = ReadINI(Des, ".ShellClassInfo", "IconResource")
If Icon <> "" Then
If InStr(Icon, ",") > 0 Then
PathIc = Icon
Icon = Mid(Icon, InStrRev(Icon, ",") + 1)
Path = Left(PathIc, InStrRev(PathIc, ",") - 1)
End if
Else
MsgBox "Нет номера значка в стандартных местах Desktop.ini", vbOKOnly &_
vbCritical, Titles :WSFSEnd
End if
End if
Else
MsgBox "В папке " & Folder & " нет файла Desktop.ini", vbOKOnly &_
vbCritical, Titles : WSFSEnd
End if
Select Case Param
Case 1 Str = Path
Case 2 Str = PathIc
Case 3 Str = Icon
End Select
Tmp = FSO.GetSpecialFolder(2) & "\" & FSO.GetTempName()
FSO.CreateTextFile(Tmp, True).Write Str
WSH.Run Chr(34) & GetPath(NirCmd) & Chr(34) & " " & "clipboard readfile " & Tmp , 2,True
WScript.Sleep 1000 : FSO.DeleteFile Tmp : WSFSEnd
Sub WSFSEnd : Set WSH = Nothing : Set FSO = Nothing : Wscript.Quit : End Sub
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End FunctionСообщение отредактировал Andrey_A 9 марта 2012 - 01:11Читайте: Справочные материалы по работе c TC + Онлайн справка TC
22 ноября 2011 - 14:47 / #3 -
SetIconForFolders.vbs
Назначить выделенным папкам иконки из файла, или из библиотеки' SetIconForFolders.vbs
'======================== Описание =====================================
' Назначить выделенным папкам иконки из файла, или из библиотеки
' (создание файла Desktop.ini в этой папке)
' В диалоге есть возможность ввести номер иконки
'======================== Примеры =======================================
' %L %T%M - Назначение папке\ам значка из файла соседней панели
' %L "%%COMMANDER_PATH%%\Wcmicons.dll" Назначение папке значка из файла Wcmicons.dll
' Автор: Аверин Андрей
' Версия: 1.2 (22.08.2011 - 05.03.2012)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'========================================================================
If WScript.Arguments.Count < 2 Then WScript.Quit
Number = 0
IconFile = WScript.Arguments(1)
Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
Number = InputBox("Введите номер значка в библиотеке," & vbNewLine &_
"(по-умолчанию номер = 0)", "Назначение значка папке или Создание Desktop.ini ", Clip)
If Len(Number) = 0 Then WScript.Quit
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ListFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
Do While Not ListFile.AtEndOfStream
Dir = ListFile.ReadLine
If FSO.FolderExists(Dir)Then
If Right(Dir, 1) <> "\" Then Dir = Dir & "\"
CreateDesctop(Dir)
End If
Loop
Set FSO = Nothing : Set ListFile = Nothing : WScript.Quit
Sub CreateDesctop(Dir)
FileName = Dir & "Desktop.ini"
If FSO.FileExists(FileName) Then FSO.DeleteFile(FileName)
With FSO.CreateTextFile(FileName, True) 'Создадим Desktop.ini
.WriteLine "[.ShellClassInfo]"
.WriteLine "IconFile=" & IconFile
.WriteLine "IconIndex=" & Number
.WriteLine "IconResource=" & IconFile & "," & Number
.Close
End With
With FSO.GetFile(FileName) .Attributes = .Attributes Or 38 End With
With FSO.GetFolder(Dir) .Attributes = .Attributes Or 1 End With
End SubСообщение отредактировал Andrey_A 9 марта 2012 - 01:13Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 02:44 / #4 -
IconsOnAssFolders.vbs
Присвоение значков выделенным Папкам по содержимому' IconsOnAssFolders.vbs
'======================================================================
' Присвоение значков выделенным Папкам по содержимому
' Ассоциированные значкам папки и расширения считываются из файла
' Синтаксис файла:
' Путь\к\значку{библиотека,номер}=;Папка1;Папка2;расширение1;расширение2;...
' d:\Картинки\Иконки\Архив.ico=;Архивы;Архив;7z;7zip;rar;
' %SystemRoot%\system32\shell32.dll,-236=;Музыка;mp3;wal;
' %COMMANDER_PATH%\Wcmicons.icl,1854=;Текст;Документы;doc;docx;txt;
' %WINDIR%\Wcmicons.dll,1457=;TC Image;Total Commander;
'======================== Параметры ===================================
' В параметрах вызова из TC должно быть прописанo 2 параметра:
' {Cписок файлов} {путь\к\файлу_ассоциаций}
' {любой 3-й параметр означает, что если в папке уже есть desctop.ini - он будет заменён}
'======================== Примеры ===================================
' %L "%%COMMANDER_PATH%%\Scripts\AddIcons\IconsOnAssFolders.txt"
' %L "%%COMMANDER_PATH%%\Scripts\AddIcons\IconsOnAssFolders.txt" 1
' Автор: Аверин Андрей
' Версия: 1.2 (30.12.2010 - 21.10.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'======================================================================
Cnt = WScript.Arguments.Count
If Cnt < 2 Then
MsgBox "Не хватает параметров!" & vbNewLine &_
"Должно быть минимум Два параметра!" & vbNewLine &_
"%L ''Путь\к\IconsOnAssFolers.txt''", vbOKOnly &_
vbCritical, "Присвоение значков Папкам по содержимому"
Wscript.Quit
End If
Dim FSO, ExtLine
Set FSO = CreateObject("Scripting.FileSystemObject")
Set List = FSO.OpenTextFile(GetPath(WScript.Arguments(0)), 1)
ExtLine = Split(FSO.OpenTextFile(GetPath(WScript.Arguments(1)), 1).ReadAll, vbNewLine)
Do While Not List.AtEndOfStream
fF = GetPath(List.ReadLine) : ll = 0
If FSO.FolderExists(fF) Then
Ext = Split(";" & FSO.GetBaseName(fF) & ";" & ExtStr(fF), ";")
For i = 0 To Ubound(Ext)
For k = 0 To Ubound(ExtLine)
If InStr(1, UCase(Mid(ExtLine(k), Instr(ExtLine(k), "=") + 1, Len(ExtLine(k)))), ";" & UCase(Ext(i)) & ";") > 0 Then
If Right(fF, 1) <> "\" Then fF = fF & "\"
IC = GetPath(Mid(ExtLine(k), 1, Instr(ExtLine(k), "=") - 1))
If Instr(IC, ",") > 0 Then
IC = GetPath(Mid(ExtLine(k), 1, Instr(ExtLine(k), ",") - 1))
NN = Mid(ExtLine(k), Instr(ExtLine(k), ",") + 1, Instr(ExtLine(k), "=") - Instr(ExtLine(k), ",") - 1)
Else
NN = "0"
End If
Desktop fF, IC, NN : ll = 1 : Exit For
End If
Next
If ll = 1 Then Exit For
Next
End If
Loop
List.Close : Set List = Nothing : Set Folder = Nothing : Set FSO = Nothing : Wscript.Quit
Function GetPath(pPath) : GetPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings(pPath) : End Function
Function ExtStr(fFolder)
Dim Folder
Set Folder = FSO.GetFolder(fFolder)
For Each Files In Folder.Files
If InStr(";descript.ion;desktop.ini;", LCase(FSO.GetFileName(Files))) = 0 Then
Ext = FSO.GetExtensionName(Files)
If InStr(UCase(ExtStr), UCase(Ext)) < 1 Then ExtStr = ExtStr & Ext & ";"
End If
Next
End Function
Sub Desktop(TargetDir,IconFile, Number)
FileName = TargetDir & "Desktop.ini"
If Not FSO.FileExists(FileName) Or Cnt > 2 Then
If FSO.FileExists(FileName) Then FSO.DeleteFile(FileName)
With FSO.CreateTextFile(FileName)
.WriteLine "[.ShellClassInfo]"
.WriteLine "IconFile=" & IconFile
.WriteLine "IconIndex=" & Number
.WriteLine "IconResource=" & IconFile & "," & Number
.Close
End With
With FSO.GetFile(FileName) .Attributes = .Attributes Or 38 End With
With FSO.GetFolder(TargetDir) .Attributes = .Attributes Or 33 End With
End If
End Sub
Пример файла IconsOnAssFolders.txtСообщение отредактировал Andrey_A 9 марта 2012 - 01:14Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 02:46 / #5 -
IconOnFolders.vbs
Назначение папке иконки из файла, т.е. создание файла Desktop.ini в этой папке' IconOnFolders.vbs
'======================== Описание =====================================
' Назначение папке иконки из файла, т.е. создание файла Desktop.ini в этой папке
' В диалоге вводится номер значка библиотеки
'======================== Параметры =====================================
' 1-й параметр: Папка, которой будет назначен значок
' 2-й параметр: Библиотека, значок
' Любой третий параметр не вызовет диалог ввода номера значка
'======================== Примеры =====================================
' "%P\" %P%N - Назначение папке значка из файла под курсором
' %P%N %T%M - Назначение папке значка из файла соседней панели
' %P%N "%%COMMANDER_PATH%%\Wcmicons.dll" Назначение папке значка из файла Wcmicons.dll
' "%P\" ""%N"" 1 - Назначение папке значка из файла под курсором без пути (без диалога)
' Автор: Аверин Андрей
' Версия: 1.2 (2010 - 21.10.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'========================================================================
Titles = "Назначение значка папке - Создание Desktop.ini "
With WScript
Cnt = .Arguments.Count
If Cnt = 0 Then .Quit
Number = 0 : TargetDir = .Arguments(0) : IconFile = .Arguments(1)
If Cnt < 3 Then
Number = InputBox("Введите номер значка в библиотеке," & vbNewLine &_
"(по-умолчанию номер = 0)",Titles , "0")
If Len(Number) = 0 Then .Quit
End If
End With
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(TargetDir) Then
If Right(TargetDir, 1) <> "\" Then TargetDir = TargetDir & "\"
Else
MsgBox "Не задано корректное имя папки!", vbOKOnly + vbExclamation, Titles : WsEnd
End If
TrFile = TargetDir & "Desktop.ini"
If FSO.FileExists(TrFile) Then FSO.DeleteFile(TrFile)
'Создадим Desktop.ini
With FSO.CreateTextFile(TrFile, True)
.WriteLine "[.ShellClassInfo]"
.WriteLine "IconFile=" & IconFile
.WriteLine "IconIndex=" & Number
.WriteLine "IconResource=" & IconFile & "," & Number
.Close
End With
With FSO.GetFile(TrFile) .Attributes = .Attributes Or 38 End With
With FSO.GetFolder(TargetDir) .Attributes = .Attributes Or 1 End With
WsEnd
Sub WsEnd : Set FSO = Nothing : WScript.Quit : End SubСообщение отредактировал Andrey_A 9 марта 2012 - 01:14Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 02:54 / #6 -
FoldersGroupIcon.vbs
Групповое назначение иконок у выделенных папок' FoldersGroupIcon.vbs
'=========================================================================
' Групповое назначение иконок у выделенных папок (создание файлов desktop.ini)
' Назначить выделенным папкам значков из exe, ico, icl файлов в папках
'======================= Параметры =====================================
' 1-й параметр: папка|файл-список папок
' 2-й параметр: файл с иконкой
' 3-й параметр: режим поиска файла с иконкой, где режим поиска файла с иконкой может принимать значения:
' 0 - обязательно должен быть задан файл с иконкой;
' 1 - если не задан файл с иконкой, выполняется автоматический поиск;
' 2 - если автоматически файл не найден, предлагается указать его вручную;
' 3 - всегда предлагается указать файл вручную (по умолчанию).
' 4-й параметр: любой, означает, что если в папке уже есть desctop.ini - он будет заменён
' 5-й параметр: любой, означает, что в desctop.ini будет прописано только имя файла
'======================== Примеры =====================================
' "%P" "%N"
' %P%N %T%M
' %L "" 2
' %L "" 1 1 1
' Автор: Batya & Аверин Андрей
' Версия: 1.1 (16.04.2009 - 20.10.2011)
' Site: http://tc-image.3dn.ru
'=========================================================================
Option Explicit
'======== Изменяемые параметры ===========================================
Const DefaultMode = 3 'Режим поиска файла с иконкой по умолчанию
Const FoldAttr = 1 'Атрибуты папки - "Только чтение"
Const FileAttr = 38 'Атрибуты файла - "Скрытый", "Системный", "Архивный"
'=========================================================================
Dim Mess, FSO, ListFlag, FF, IconFile, F, Errors, Mode, Cnt, Des
Set Errors = CreateObject("Scripting.Dictionary")
Set FSO = CreateObject("Scripting.FileSystemObject")
SetMess : CheckParam
If ListFlag Then
For Each F In Split(FSO.OpenTextFile(FF).ReadAll, vbNewLine)
If FSO.FolderExists(F) Then Main F
Next
Else
Main FF
End If
If Errors.Count > 0 Then MessBox JoinErr(Errors), 2
Quit
Sub SetMess
Set Mess = CreateObject("Scripting.Dictionary")
With Mess
.Add 0, " для папки"
.Add 1, "Не указаны параметры!"
.Add 2, "Первый параметр не является папкой или файлом-списком!"
.Add 3, "Указанный файл с иконкой не существует!"
.Add 4, "Не является папкой!"
.Add 5, "Файл с иконкой не найден!"
.Add 6, "Файл Desktop.ini уже существует!"
.Add 7, "Операция завершена."
.Add 8, "Операция завершена с ошибками." & vbNewLine
.Add 9, "Укажите файл иконок для папки "
.Add 10, "Исполняемые файлы (*.exe)|*.exe|Файлы иконок (*.ico)|*.ico|Все файлы (*.*)|*.*"
.Add 11, "Неправильно указан режим поиска файла иконок!"
.Add 12, "В данном режиме файл с иконкой должен быть указан обязательно!"
End With
End Sub
Sub Main(pF)
Dim lF, lIF
lF = GetPath(pF)
If Not FSO.FolderExists(lF) Then Errors.Add lF, lF & " - " & Mess(4) : Exit Sub End If
lIF = GetIconFile(lF, IconFile)
If lIF = "" Then Errors.Add lF, lF & " - " & Mess(5) : Exit Sub End If
With FSO.GetFolder(lF) .Attributes = .Attributes or FoldAttr End With 'Установим атрибуты папки
Des = lF & "\Desktop.ini"
If Not FSO.FileExists(Des) Or Cnt > 3 Then
If FSO.FileExists(Des) Then FSO.DeleteFile Des
CreateDesktopFile Des, lIF
Else
Errors.Add lF, lF & " - " & Mess(6) : Exit Sub
End If
End Sub
Sub CheckParam
Cnt = WScript.Arguments.Count
If Cnt = 0 Then MessBox Mess(1), 1 : Call Quit End If
FF = WScript.Arguments(0) : ListFlag = FSO.FileExists(FF)
If (Not ListFlag) And (Not FSO.FolderExists(FF)) Then MessBox Mess(2), 1 : Call Quit End If
If Cnt > 1 Then
IconFile = WScript.Arguments(1)
If IconFile <> "" Then IconFile = GetPath(IconFile)
Else
IconFile = ""
End If
If Cnt > 2 Then
Mode = WScript.Arguments(2)
If Mode = "" Then
Mode = DefaultMode
Else
If IsNumeric(Mode) Then
Mode = CInt(Mode)
Else
MessBox Mess(11), 1 : Call Quit
End If
If Not((Mode = 0) Or (Mode = 1) Or (Mode = 2) Or (Mode = 3)) Then MessBox Mess(11), 1 : Call Quit End If
End If
Else
Mode = DefaultMode
End If
If (Mode = 0) And (IconFile = "") Then MessBox Mess(12), 1 : Call Quit End If
If (IconFile <> "") And (Not FSO.FileExists(IconFile)) Then MessBox Mess(3), 1 : Call Quit End If
End Sub
Sub Quit : Set Errors = Nothing : Set FSO = Nothing : WScript.Quit : End Sub
Function MessBox(pMess, pMode)
Dim lIcon
Select Case pMode
Case 1 lIcon = vbCritical + vbOKOnly
Case 2 lIcon = vbExclamation + vbOKOnly
Case 3 lIcon = vbInformation + vbOKOnly
End Select
MessBox = MsgBox(pMess, lIcon, Mess(0))
End Function
Function JoinErr(pDic)
Dim lKey
For Each lKey In pDic
JoinErr = JoinErr & vbNewLine & vbNewLine & pDic(lKey)
Next
JoinErr = Mess(8) & JoinErr
End Function
Sub CreateDesktopFile(pFile, pIconFile)
If Cnt > 4 Then pIconFile = FSO.GetFileName(pIconFile)
With FSO.CreateTextFile(pFile)
.WriteLine "[.ShellClassInfo]"
.WriteLine "IconResource=" & pIconFile
.WriteLine "IconFile=" & pIconFile
.WriteLine "IconIndex=0"
.Close
End With
With FSO.GetFile(pFile) .Attributes = .Attributes or FileAttr End With
End Sub
Function GetPath(pPath)
GetPath = FSO.GetAbsolutePathName(CreateObject("WScript.Shell").ExpandEnvironmentStrings(pPath))
End Function
Function GetIconFile(pFolder, pFile)
Dim lFile, Ext, i
If Mode = 0 Then GetIconFile = pFile : Exit Function End If
If Mode < 3 Then
If pFile <> "" Then
GetIconFile = pFile : Exit Function
Else
lFile = pFolder & "\" & FSO.GetBaseName(pFolder) & ".exe"
If FSO.FileExists(lFile) Then
GetIconFile = lFile : Exit Function
End If
For Each lFile In FSO.GetFolder(pFolder).Files
If UCase(FSO.GetExtensionName(lFile)) = "EXE" Then
If (UCase(Left(lFile, 5)) <> "UNINS") Or (UCase(FSO.GetBaseName(lFile)) <> "UNWISE") Then
GetIconFile = lFile : Exit Function
End If
End If
Next
Ext = Array("ICO", "ICL") ' если .exe не найдено (можно вписать другие раксширения имеющие значки)
For i = 0 To Ubound(Ext)
For Each lFile In FSO.GetFolder(pFolder).Files
If UCase(FSO.GetExtensionName(lFile)) = Ext(i) Then GetIconFile = lFile : Exit Function End If
Next
Next
If Mode = 2 Then
GetIconFile = OpenFile(pFolder)
Else
GetIconFile = ""
End If
End If
Else
GetIconFile = OpenFile(pFolder)
End If
End Function
Function OpenFile(pFolder)
Dim Dlg
On Error Resume Next
Set Dlg = CreateObject("MSComDlg.CommonDialog")
If Err.Number = 0 Then
On Error GoTo 0
With Dlg
.InitDir = pFolder
.Filter = Mess(10)
.Flags = &H4 + &H8 + &H400 + &H1000 + &H80000
.FilterIndex = 1
.MaxFileSize = 32000
.CancelError = True
.DialogTitle = Mess(9) & """" & pFolder & """"
On Error Resume Next
.ShowOpen
End With
If Err.Number = 0 Then
OpenFile = Dlg.FileName
Else
OpenFile = ""
End If
On Error GoTo 0
Set Dlg = Nothing
Else
On Error GoTo 0
Dlg = InputBox(Mess(9) & """" & pFolder & """", Mess(0), pFolder & "\")
If Dlg <> "" Then Dlg = GetPath(Dlg)
If Not FSO.FileExists(Dlg) Then Dlg = ""
OpenFile = Dlg
End If
End FunctionСообщение отредактировал Andrey_A 9 марта 2012 - 01:15Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 02:58 / #7 -
DeleteDesktopInI.vbs
Удаление в выделенных папках файла Desktop.ini и снятие атрибута с папки "Только чтение"' DeleteDesktopInI.vbs
'======================== Описание =====================================
' Удаление в выделенных папках файла Desktop.ini и снятие атрибута с папки "Только чтение"
'======================= Параметры =====================================
' 1-й параметр: Список файлов
' 2-й параметр: необязательный битовый флаг атрибута, который необходимо снять с папки
' (по умолчанию снимается с папки атрибут "Только чтение")
'======================== Примеры =====================================
' %L - удалить Desktop.ini и снять атрибут "Только чтение"
' %L 0 - удалить Desktop.ini и снять все атрибуты
'======================= Дополнение ====================================
' Иногда desktop.ini содержит иную информацию помимо пути и индекса иконки,
' поэтому используйте этот скрипт разумно!!!
' Автор: Аверин Андрей
' Версия: 1.1 (14.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'========================================================================
If WScript.Arguments.Count > 0 Then
With CreateObject("Scripting.FileSystemObject")
Attr = 1
If WScript.Arguments.Count > 1 Then Attr = WScript.Arguments(1)
Set ListFile = .OpenTextFile(WScript.Arguments(0), 1)
Do While Not ListFile.AtEndOfStream
Dir = ListFile.ReadLine
If .FolderExists(Dir)Then
If Right(Dir, 1) <> "\" Then Dir = Dir & "\"
Des = Dir & "Desktop.ini"
If .FileExists(Des) Then
.GetFolder(Dir).Attributes = Attr ' Снимаем у папки атрибут
.DeleteFile Des
End If
End If
Loop
End With
Else
MsgBox "Не хватает параметров!", vbOKOnly & vbCritical, "Удаление Desktop.ini"
End If
WScript.QuitСообщение отредактировал Andrey_A 9 марта 2012 - 01:16Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 03:00 / #8 -
Attributes.vbs
Установка\Снятие атрибутов у выделенных файлов\папок без рекурсии' Attributes.vbs
'======================== Описание =====================================
' Установка\Снятие атрибутов у выделенных файлов\папок без рекурсии
' (без подпапок и файлов в них)
'======================= Параметры =====================================
' 1-й параметр: список файлов\папок
' 2-й параметр: 0 - снятие атрибута; 1 - установка атрибута
' 3-й параметр: битовый флаг атрибута
'========================================================================
'Normal 0 Normal file. No attributes are set. Нет атрибутов
'ReadOnly 1 Read-only file. Attribute is read/write. Только чтение
'Hidden 2 Hidden file. Attribute is read/write. Скрытый
'System 4 System file. Attribute is read/write. Системный
'Volume 8 Disk drive volume label. Attribute is read-only. Метка диска
'Directory 16 Folder or directory. Attribute is read-only. Каталог
'Archive 32 File has changed since last backup. Attribute is read/write. Архивный
'Alias 64 Link or shortcut. Attribute is read-only. Ярлык
'Compressed 128 Compressed file. Attribute is read-only. Сжатый
'========================================================================
' %L 1 38
' Автор: Аверин Андрей
' Версия: 1.0 (28.04.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'========================================================================
Dim FSO, FF, Line, sFile
Set FSO = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count > 1 Then
Set sFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
m = WScript.Arguments(1) : Atrib = WScript.Arguments(2)
Else
MsgBox "Не хватает параметров!!!", vbOKOnly & vbCritical, "Установка\Снятие Атрибутов"
WScript.Quit
End If
Do While Not sFile.AtEndOfStream
Line = sFile.ReadLine
if FSO.FileExists(Line) Then Set FF = FSO.GetFile(Line)
if FSO.FolderExists(Line) Then Set FF = FSO.GetFolder(Line)
If m = 0 Then
FF.Attributes = FF.Attributes And Not Atrib
Else
FF.Attributes = FF.Attributes Or Atrib
End If
Loop
Set sFile = Nothing : Set FF = Nothing : Set FSO = Nothing : WScript.QuitСообщение отредактировал Andrey_A 9 марта 2012 - 01:16Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 03:17 / #9 -
ChangeAttributes.vbs
Изменение атрибута у отмеченных файлов и папок (файлов в них)' ChangeAttributes.vbs
'=====================================================================
' http://forum.wincmd.ru/viewtopic.php?p=77300#77300
' http://tc-image.3dn.ru
' Изменение атрибута у отмеченных файлов и папок (файлов в них)
' Параметры:
' {файл-список} {битовый флаг атрибута} [{режим}]
' где {режим} может принимать значения:
' 0 - смена атрибута (по умолчанию),
' 1 - установка атрибута,
' 2 - снятие атрибута.
' Наиболее часто используемые значения {битовый флаг атрибута}:
' 1 - только чтение,
' 2 - скрытый,
' 4 - системный,
' 32 - архивный.
' Пример параметров вызова из TC (установка атрибута "Скрытый"):
' %L 2 1
' Автор: Batya
' Версия: 1.0 (26.04.2011)
'=====================================================================
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Сообщение отредактировал Andrey_A 9 марта 2012 - 01:16Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 03:22 / #10
Статистика форума, пользователей онлайн: 0 (за последние 30 минут)
---
- Создано тем
- 107
- Всего сообщений
- 4048
- Пользователей
- 99000
- Новый участник
- termojader
Powered by Bullet Energy Forum

