Скрипты для 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 -
LinkFromAssociationsTC.vbs
Создание ярлыков выделенных файлов, связанных с Программой, ассоциированной в Total Commander
Используется FunctionsINIRWS.vbs - файл можете скачать в шапке темы' LinkFromAssociationsTC.vbs
'======================== Описание =====================================
' Создание ярлыков выделенных файлов, связанных с Программой, ассоциированной в Total Commander
'======================= Параметры =====================================
' 1-й параметр: файл список
' 2-й параметр: файл с секцией ассоциаций
' 3-й параметр: путь сохранения ярлыка
'======================= Дополнение ====================================
' Можно составить СВОЙ ФАЙЛ АССОЦИАЦИЙ ListAssFiles.txt, вне файла Wincmd.ini
' где синтаксис будет таким же как и в секции [Associations]
' Filter1=;*.TXT;*.inc;
' Filter1_open=""%COMMANDER_PATH%\AkelPad.exe" "%1""
' Filter2=;*.JPG;*.bmp;
' Filter2_open=""%COMMANDER_PATH%\Plugins\wlx\Imagine\Imagine.exe" "%1""
'======================= Параметры =====================================
' %L "%%COMMANDER_PATH%%\WinAssociations.ini" "%t"
' %L "%%COMMANDER_PATH%%\Wincmd.ini" "%p"
' %L "%%COMMANDER_PATH%%\UserAssociations_1.txt" "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\"
' "%%COMMANDER_PATH%%\ListAssFiles.txt" "%%COMMANDER_PATH%%\Associations_2.txt" %%USERPROFILE%%\Desktop\"
'
' Автор: Аверин Андрей
' Версия: 2.0 (2010 - 14.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'==================== Изменяемые пути ===================================
INI = "%COMMANDER_PATH%\Scripts\Include\FunctionsINIRWS.vbs"
'========================================================================
Dim FSO, WSH
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Execute FSO.OpenTextFile(GetPath(INI)).ReadAll
Set ListFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
TPath = GetPath(WScript.Arguments(2))
Do While Not ListFile.AtEndOfStream
SelFile = ListFile.ReadLine
Name = FSO.GetBaseName(SelFile) : Ext = FSO.GetExtensionName(SelFile)
ExtAss = UCase(";*." & Ext & ";")' Готовим строку для поиска в ассоциациях
TPathN = TPath & "\" & Name & "." & Ext & ".lnk" ' Параметры ярлыка по умолчанию
Icon = TRG & ",0"
If FSO.FolderExists(SelFile) Then
Icon = ",0" : TPathN = TPath & "\" & Name & "." & "lnk"
End if
AsText = ReadINISection(WScript.Arguments(1), "Associations")
AsText = LCase(RegExpReplace(AsText, "( [|])(.*)(" & vbNewLine & ")", "$3")) ' удаление игнорируемых расширений
ListAss = Split(AsText, vbNewLine)
For i = 0 To Ubound(ListAss)
If Len(ListAss(i)) > 0 Then
if InStr(UCase(ListAss(i)), ExtAss) > 1 Then
if InStr(UCase(ListAss(i+1)),"OPEN") > 1 Then
LA = ListAss(i+1)
TRG = Mid(LA, InStr(1, LA, "=") + 1)
If Mid(TRG, 1, 1) = Chr(34) Then TRG = Mid(TRG, 2)
If Mid(TRG, 1, 1) = Chr(34) Then TRG = Mid(TRG, 2)
TRG =Mid(TRG, 1, InStr(TRG, Chr(34)) - 1)
TPathN = TPath & "\" & Name & "." & Ext & ".lnk"
If InStr(1,UCase(ListAss(i + 2)),"ICON") > 1 Then
LA = ListAss(i+2)
Icon = Mid(LA, InStr(1, LA, "=") + 1 , Len(LA) - InStr(1, LA, "="))
Icon = GetPath(Icon)
End If
End if
Exit For
End if
End If
Next
If Len(TRG) > 0 Then
TRG = GetPath(TRG)
With WSH.CreateShortcut(TPathN)
.Arguments = Chr(34) & SelFile & Chr(34)
.Description = SelFile
.IconLocation = icon
.TargetPath = TRG
.WindowStyle = 1
.WorkingDirectory = FSO.GetParentFolderName(TRG)
.Save
End With
End If
Loop
ListFile.Close : Set ListFile = Nothing : Set WSH = Nothing : Set FSO = Nothing : WScript.Quit
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function
Function RegExpReplace(ppText, pFindStr, pNewStr)
With New RegExp
.Pattern = pFindStr : .IgnoreCase = True : .Global = True : RegExpReplace = .Replace(ppText, pNewStr)
End With
End FunctionСообщение отредактировал Andrey_A 11 марта 2012 - 20:27Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:14 / #51 -
MarkerCondition.vbs
Выделение элементов с заданными интервалами и условием
Используется NirCmd.exe и TCMC.exe - файлы можете скачать в шапке темы' MarkerCondition.vbs
'======================== Описание ====================================
' Выделение элементов с заданными интервалами и условием
' Выделяет так же в окне после поиска и при cm_DirBranch
'======================== Параметры ====================================
' 1-й параметр: %L
' 0 - выделяется всё в текущей панели
' > - выделяется от курсора вниз
' < - выделяется от курсора вверх
' %L - выделяется только выделенное
' 2-й параметр: К-во подряд выделяемых элементов
' 3-й параметр: К-во пропущенных элементов после выделения
' 4-й параметр: Условие
' без параметра - всё (и файлы и папки)
' 1 - только файлы
' 2 - только папки
'======================== Примеры ====================================
' 0 1 1 - выделяется всё в текущей панели зеброй
' > 2 2 - выделяется всё от курсора вниз крупной зеброй
' < 3 4 - выделяется всё от курсора вверх необычной зеброй
' %L 1 5 - выделяется всё что выделено редкой зеброй
' 0 1 1 1 - только файлы
' 0 3 3 2 - только папки
' Автор: Аверин Андрей
' Версия: 1.0 (20.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'======================== Изменяемые пути ===============================
Program = "%COMMANDER_PATH%\NirCmd.exe"
TCMC = "%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMC.exe"
MzList = "%COMMANDER_PATH%\Files\Lists\MarkerList\MarkerList.txt" ' любой файл для записи выделения
'========================================================================
Count = WScript.Arguments.Count
If Count < 3 Then
MsgBox "Не хватает параметров!" & vbNewLine &_
"Должен быть минимум ТРИ параметра:" & vbNewLine &_
"пример1: %L 2 3" & vbNewLine &_
"пример2: 0 1 3" , vbOKOnly &_
vbInformation, "Сохранение выделенного в файл"
Wscript.Quit
End If
Dim FSO, WSH, TextMarker
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = WScript.CreateObject("WScript.Shell")
If Count > 3 Then Condition = WScript.Arguments(3)
Cnt = WScript.Arguments(0)
Select Case Cnt
Case "0"
Select Case Condition
Case 1 RunTCMC("CM3302")
Case 2 RunTCMC("CM3303")
Case Else RunTCMC("CM523")
End Select
MarkerInText
Case ">" WSH.SendKeys "+{END}" : ConditionMarker
Case "<" WSH.SendKeys "+{HOME}" : ConditionMarker
Case Else On Error Resume Next : TextMarker = FSO.OpenTextFile(Cnt, 1).ReadAll
End Select
RunTCMC("CM2029")
gPath = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
If Len(gPath) > 0 Then
gPath = gPath & "\" : TextMarker = Replace(TextMarker, gPath , "", 1, -1, 1)
End If
If Count > 2 Then
N = CInt(WScript.Arguments(1)) : M = CInt(WScript.Arguments(2))
If N < 1 Or M < 1 Then WScript.Quit
DataM = Split(TextMarker, vbNewLine) : TextMarker = ""
If UBound(DataM) > N + 1 Then
N = N - 1
For i = 0 To UBound(DataM) Step N + M + 1
On Error Resume Next
For j = i To i + N
TextMarker = TextMarker & DataM(j) & vbNewLine
Next
If i > UBound(DataM) Then Exit For
Next
End if
End if
MzList = GetPath(MzList) : Program = GetPath(Program)
FSO.CreateTextFile(MzList, True).Write(TextMarker)
WScript.Sleep 100
WSH.Run Chr(34) & Program & Chr(34) & " clipboard readfile " & Chr(34) & MzList & Chr(34), 2, True
WScript.Sleep 200
RunTCMC("CM2033")
Set WSH = Nothing : Set FSO = Nothing : WScript.Quit
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function
Sub RunTCMC(Param) : WSH.Exec(Chr(34) & TCMC & Chr(34) & Chr(32) & Chr(34) & Param & Chr(34)) : End Sub
Sub ConditionMarker
Select Case Condition
Case 1 WScript.Sleep 300 : RunTCMC("CM3305")
Case 2 WScript.Sleep 300 : RunTCMC("CM3304")
End Select
MarkerInText
End Sub
Sub MarkerInText
WScript.Sleep 300 : RunTCMC("CM2018") : WScript.Sleep 1000
TextMarker = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
WScript.Sleep 200
End SubСообщение отредактировал Andrey_A 11 марта 2012 - 20:28Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:28 / #52 -
MarkerN.vbs
Выделить нужное количество папок и файлов в активной панели
Используется NirCmd.exe и TCMC.exe - файлы можете скачать в шапке темы' MarkerN.vbs
'======================== Описание ==========================
' Выделить нужное количество папок и файлов в активной панели
' Выделяет так же в окне после поиска и при cm_DirBranch
'======================== Параметры ==========================
' 1-й параметр: Условия выделения. Может принимать значения:
' 1 - Выделение СВЕРХУ вниз
' 2 - Выделение СНИЗУ вверх
' 3 - Выделение от курсора ВНИЗ
' 4 - Выделение от курсора ВВЕРХ
' 2-й параметр: КОЛИЧЕСТВО выделяемых файлов
'======================== Примеры ==========================
' без параметров - условия вводятся в диалоге
' 1 10
' 2 50
' 3 100
' 4 80
'
' Автор: Аверин Андрей
' Версия: 1.8 (02.11.2010 - 20.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'======================== Изменяемые пути ====================
Program = "%COMMANDER_PATH%\NirCmd.exe"
MZList = "%COMMANDER_PATH%\Files\Lists\MarkerList\MarkerList.txt" ' любой файл для записи выделения
TCMC = "%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMC.exe"
'=============================================================
Titles = "Выделение Файлов и Папок "
With WScript
Cnt = WScript.Arguments.Count
If Cnt < 1 Then
Num = InputBox("Введите параметр (ЧИСЛО) нужного Вам выделения:" & vbNewLine &_
"{1} - Выделение СВЕРХУ вниз" & vbNewLine & "{2} - Выделение СНИЗУ вверх" &_
vbNewLine & "{3} - Выделение от курсора ВНИЗ" & vbNewLine &_
"{4} - Выделение от курсора ВВЕРХ", Titles, 1)
Else
Num = .Arguments(0)
End If
If Len(CStr(Num)) = 0 Or Num < 1 Or Num > 5 Then .Quit
If Cnt < 2 Then
N = InputBox("Введите КОЛИЧЕСТВО выделяемых файлов и папок" , Titles, 10)
Else
N = .Arguments(1)
End If
If Len(N) = 0 Then .Quit
End With
Dim WSH
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = WScript.CreateObject("WScript.Shell")
Select Case Num
Case 1 RunTCMC("CM523")
Case 2 CntrStr = 1 : RunTCMC("CM523")
Case 3 WSH.SendKeys "+{END}"
Case 4 CntrStr = 1 : WSH.SendKeys "+{HOME}"
End Select
WScript.Sleep 200 : RunTCMC("CM2018") : WScript.Sleep 200
Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
Data = Split(Clip, vbNewLine)
If UBound(Data) < 3 Then WsEnd
For i = 0 To N - 1
If CntrStr = 0 Then
M = i
Else
M = UBound(Data) - i
End if
TextZ = TextZ & Data(M) & vbNewLine
If i = UBound(Data) Then Exit For
Next
RunTCMC("CM2029")
gPath = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
If Len(gPath) > 0 Then
gPath = gPath & "\" : TextZ = Replace(TextZ, gPath , "", 1, -1, 1)
End If
Program = GetPath(Program) : MZList = GetPath(MZList)
FSO.CreateTextFile(MZList, True).Write(TextZ)
WSH.Run Chr(34) & Program & Chr(34) & Chr(32) & "clipboard readfile " & Chr(34) & MZList & Chr(34), 2, True
WScript.Sleep 200 : RunTCMC("CM2033") : WScript.Sleep 200
Select Case Num
Case 1,3 RunTCMC("CM2054")
Case 2,4 RunTCMC("CM2053")
End Select
WsEnd
Sub MsError
MsgBox "Введены не правильные параметры" , vbOKOnly & vbInformation, Titles : Wscript.Quit
End Sub
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function
Sub WsEnd : Set WSH = Nothing : Set FSO = Nothing : WScript.Quit : End Sub
Sub RunTCMC(Param) : WSH.Exec(Chr(34) & TCMC & Chr(34) & Chr(32) & Chr(34) & Param & Chr(34)) : End SubСообщение отредактировал Andrey_A 11 марта 2012 - 20:29Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:30 / #53 -
MarkerNamesSymN.vbs
Выделяет папки\файлы по к-ву символов в именах, которое задаётся условием
Используется NirCmd.exe и TCMC.exe - файлы можете скачать в шапке темы' MarkerNamesSymN.vbs
'======================== Описание =======================================
' Выделяет папки\файлы по количеству символов в именах, которое задаётся условием
' Выделяет так же в окне после поиска и при cm_DirBranch
'======================== Параметры =======================================
' 1-й параметр: Условия поиска для выделения. Может принимать значения:
' "0" - условия вводятся в диалоге
' "=N" - выделяет файлы\папки, в именах которых N символов
' "<N" - выделяет файлы\папки, в именах которых меньше N символов
' ">N" - выделяет файлы\папки, в именах которых больше N символов
' 2-й параметр: %L
'======================== Примеры ======================================
' без параметров - выделяет все имена в текущей панели, в которых встречается условие, введённое в диалоге
' "<5" - выделяет все имена в текущей панели, в которых меньше 5 символов
' "0" %L - выделяет все имена в выделенном, в которых встречается условие, введённое в в диалоге
' "=6" %L - выделяет все имена в выделенном, в которых 6 символов
'
' Автор: Аверин Андрей
' Версия: 1.3 (17.12.2010 - 20.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
Dim FSO, WSH, zText, Stroka, i, gPath, Data
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = WScript.CreateObject("WScript.Shell")
'======================== Изменяемые пути =================================
Program = "%COMMANDER_PATH%\NirCmd.exe"
MzList = "%COMMANDER_PATH%\Files\Lists\MarkerList\MarkerList.txt"' любой файл для записи выделения
TCMC = "%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMC.exe"
'==========================================================================
Title = "Выделение файлов и папок по к-ву символов"
With WScript
Cnt = .Arguments.Count
If Cnt > 0 Then
Stroka = .Arguments(0)
If Stroka = "0" Then MsBoxx
Else
MsBoxx
End If
If Cnt > 1 Then
FF = FSO.OpenTextFile(.Arguments(1), 1).ReadAll
Else
RunTCMC("CM523") : .Sleep 200
RunTCMC("CM2018") : .Sleep 200
FF = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
WSH.SendKeys "{HOME}"
End If
End With
Sym = Mid(Stroka, 1, 1)
Num = CInt(Replace(Stroka, Sym, ""))
Data = Split(FF, vbNewLine)
If UBound(Data) < 2 Then WsEnd
RunTCMC("CM2029")
gPath = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
For i = 0 To UBound(Data)
Name = FSO.GetBaseName(Data(i)) : ln = Len(Name)
Select Case Sym
Case "="
if ln = Num Then TextW
Case ">"
if ln > Num Then TextW
Case "<"
if ln < Num Then TextW
Case Else
WSH.Popup "Введено неправильное условие для выделения" & vbNewLine &_
"Повторите заново!", 2, Title, 64
WsEnd
End Select
Next
If Len(zText) = 0 Then
RunTCMC("CM524")
WSH.Popup "Имён с длиной " & Stroka & " не найдено", 2, Title, 64
WsEnd
End If
Program = GetPath(Program) : MzList = GetPath(MzList)
FSO.CreateTextFile(MzList, True).Write(zText)
WSH.Run Chr(34) & Program & Chr(34) & Chr(32) & "clipboard readfile " & Chr(34) & MzList & Chr(34) ,2,True
WScript.Sleep 200 : RunTCMC("CM2033") : WScript.Sleep 200 : RunTCMC("CM2053")
Sub MsBoxx
Stroka = InputBox("Введите Условие поиска по к-ву символов в" & vbNewLine &_
"именах файлов для дальнейшего выделения" & vbNewLine &_
"Может быть 3 условия, Примеры:" & vbNewLine &_
"=5 выделяются имена, в которых 5 символов" & vbNewLine &_
"<5 выделяются имена, меньше 5 символов" & vbNewLine &_
">5 выделяются имена, больше 5 символов" , Title, "=8")
if Len(Stroka) = 0 Then
WSH.Popup "Не введены условия для выделения!" & vbNewLine &_
"Повторите заново!", 2, Title, 64
WsEnd
End If
WScript.Sleep 100
End Sub
Sub TextW
If Len(gPath) > 0 Then
gPath = gPath & "\"
Data(i) = Replace(Data(i), gPath , "", 1, -1, 1)
End If
zText = zText & Data(i) & vbNewLine
End Sub
Sub RunTCMC(Param) : WSH.Exec(Chr(34) & TCMC & Chr(34) & Chr(32) & Chr(34) & Param & Chr(34)) : End Sub
Sub WsEnd : Set WSH = Nothing : Set FSO = Nothing : WScript.Quit : End Sub
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End FunctionСообщение отредактировал Andrey_A 11 марта 2012 - 20:29Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:31 / #54 -
RestoreSelection.vbs
Загрузить выделение из файла
Используется NirCmd.exe и TCMC.exe - файлы можете скачать в шапке темы' RestoreSelection.vbs
'======================== Описание ========================
' Загрузить выделение из файла
'======================= Параметры ========================
' Файл с ранее сохранённым выделением
' "%%COMMANDER_PATH%%\Files\Lists\MarkerList\MarkerList.txt"
' Автор: Аверин Андрей
' Версия: 1.2 (2010 - 12.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'======================== Изменяемые пути ==================
Program = "%COMMANDER_PATH%\NirCmd.exe"
TCMC = "%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMC.exe"
'===========================================================
If WScript.Arguments.Count > 0 Then
MzList = WScript.Arguments(0)
Else
MsgBox "Не хватает параметров!" & vbNewLine &_
"Должен быть минимум ОДИН параметр ''Путь\к\файлу.txt''" , vbOKOnly &_
vbInformation, "Загрузить выделение из файла"
End If
Program = GetPath(Program) : MzList = GetPath(MzList)
If Not CreateObject("Scripting.FileSystemObject").FileExists(MzList) Then WScript.Quit
With CreateObject("WScript.Shell")
.Run Chr(34) & Program & Chr(34) & Chr(32) & "clipboard readfile " & Chr(34) & MzList & Chr(34) , 2, True
.Exec(Chr(34) & TCMC & Chr(34) & Chr(32) & Chr(34) & "CM2033" & Chr(34))
End With
WScript.Quit
Function GetPath(pPath) : GetPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings(pPath) : End FunctionСообщение отредактировал Andrey_A 11 марта 2012 - 20:30Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:33 / #55 -
SaveSelection.vbs
Сохранение выделенного в файл с дополнительными условиями или отправить преобразованное выделение в буфер обмена
Используется NirCmd.exe и TCMC.exe - файлы можете скачать в шапке темы' SaveSelection.vbs
'======================== Описание ====================================
' Сохранение выделенного в файл с дополнительными условиями в два файла:
' - один файл для дальнейшей загрузки выделения MakerList.txt
' - другой с полными путями MarkerPathList.txt
' Так же есть возможность отправлять преобразованное выделение в буфер обмена
'======================== Параметры ====================================
' 1-й параметр: %L (обязательный)
' 2-й параметр: К-во подряд выделяемых элементов
' 3-й параметр: К-во пропущенных элементов после выделения
' 4-й параметр: Любой, означает, что выделение будет + отправлено в буфер
'======================== Примеры ====================================
' %L - сохранение выделения в файл
' %L 1 1 - сохраняет выделение через одну строчку, что позволит загрузить выделение зеброй
' %L 1 5 - сохраняет выделение каждого пятого файла
' %L 2 3 - сохраняет выделение 2 через 3
' %L 0 0 1 - отправить выделение в буфер
' %L 1 1 1 - отправить выделение через одну строчку в буфер
' Автор: Аверин Андрей
' Версия: 1.8 (2010 - 22.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'======================== Изменяемые пути ===============================
Program = "%COMMANDER_PATH%\NirCmd.exe"
TCMC = "%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMC.exe"
MarkerList = "%COMMANDER_PATH%\Files\Lists\MarkerList\MarkerList.txt" ' любой файл для записи выделения
PathList = "%COMMANDER_PATH%\Files\Lists\MarkerList\MarkerPathList.txt" ' любой файл для записи путей
'======================================================================
Count = WScript.Arguments.Count
If Count < 1 Then
MsgBox "Не хватает параметров!" & vbNewLine &_
"Должен быть минимум ОДИН параметр: %L" , vbOKOnly &_
vbInformation, "Сохранение выделенного в файл"
Wscript.Quit
End If
Dim FSO, WSH
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = WScript.CreateObject("WScript.Shell")
TextPath = FSO.OpenTextFile(WScript.Arguments(0), 1).ReadAll
RunTCMC("CM2029")
gPath = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
If Len(gPath) > 0 Then
gPath = gPath & "\"
TextPath = Replace(TextPath, gPath , "", 1, -1, 1)
End If
TextMarker = TextPath
If Count > 2 Then
N = CInt(WScript.Arguments(1)) : M = CInt(WScript.Arguments(2))
If N > 0 Or M > 0 Then
DataP = Split(TextPath, vbNewLine) : DataM = Split(TextMarker, vbNewLine)
If UBound(DataP) > N + 1 Then
N = N - 1
For i = 0 To UBound(DataP) Step N + M + 1
On Error Resume Next
For j = i To i + N
TextMarkerN = TextMarkerN & DataM(j) & vbNewLine
TextPathN = TextPathN & DataP(j) & vbNewLine
Next
If i > UBound(DataP) Then Exit For
Next
TextMarker = TextMarkerN : TextPath =TextPathN
End if
End If
End if
MarkerList = GetPath(MarkerList) : PathList = GetPath(PathList)
FSO.CreateTextFile(MarkerList, True).Write(TextMarker) ' Сохраняем выделение в файл
FSO.CreateTextFile(PathList, True).Write(TextPath) ' Сохраняем пути в файл
If Count > 3 Then WSH.Run Chr(34) & Program & Chr(34) & " clipboard readfile " & Chr(34) & MarkerList & Chr(34), 2, True
Set WSH = Nothing : Set FSO = Nothing : WScript.Quit
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function
Sub RunTCMC(Param) : WSH.Exec(Chr(34) & TCMC & Chr(34) & Chr(32) & Chr(34) & Param & Chr(34)) : End SubСообщение отредактировал Andrey_A 11 марта 2012 - 20:31Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:35 / #56 -
ZebraMarker.vbs
Выделяет файлы "зеброй" текущей в панели
Используется NirCmd.exe и TCMC.exe - файлы можете скачать в шапке темы' ZebraMarker.vbs
'======================== Описание =======================================
' Выделяет файлы "зеброй" текущей в панели
' Выделяет при команде cm_DirBranch и в окне после поиска
'======================== Параметры =======================================
' 1-й параметр: %L (не обязательный)
'======================== Примеры =======================================
' без параметра - выделяет всё в текущей панели (нормально работает до 10000 файлов)
' %L - Выделить ВЫДЕЛЕННОЕ "зеброй" (работает почти при любом к-ве файлов)
' Автор: Аверин Андрей
' Версия: 1.6 (23.10.2010 - 16.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'======================== Изменяемые пути =================================
Program = "%COMMANDER_PATH%\NirCmd.exe"
MzList = "%COMMANDER_PATH%\Files\Lists\MarkerList\MarkerList.txt" ' любой файл
TCMC = "%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMC.exe"
'==========================================================================
Dim FSO, WSH
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = WScript.CreateObject("WScript.Shell")
Cnt = WScript.Arguments.Count
Select Case Cnt
Case 0
RunTCMC("CM523") : WScript.Sleep 300 : RunTCMC("CM2018") : WScript.Sleep 1000
zText = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
WScript.Sleep 200
Case 1
On Error Resume Next
zText = FSO.OpenTextFile(WScript.Arguments(0), 1).ReadAll
End Select
RunTCMC("CM2029")
gPath = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
If Len(gPath) > 0 Then
gPath = gPath & "\" : zText = Replace(zText, gPath , "", 1, -1, 1)
End If
zText = RegExpReplace(zText & vbNewLine, "(" & vbNewLine & ")(.*)(" & vbNewLine & ")", "$1")
MzList = GetPath(MzList) : Program = GetPath(Program)
WScript.Sleep 100
FSO.CreateTextFile(MzList, True).Write(zText)
WScript.Sleep 100
WSH.Run Chr(34) & Program & Chr(34) & " clipboard readfile " & Chr(34) & MzList & Chr(34), 2, True
WScript.Sleep 200
RunTCMC("CM2033")
Set WSH = Nothing : Set FSO = Nothing : WScript.Quit
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function
Sub RunTCMC(Param) : WSH.Exec(Chr(34) & TCMC & Chr(34) & Chr(32) & Chr(34) & Param & Chr(34)) : End Sub
Function RegExpReplace(pText, pFindStr, pNewStr)
With New RegExp
.Pattern = pFindStr : .IgnoreCase = True : .Global = True : RegExpReplace = .Replace(pText, pNewStr)
End With
End FunctionСообщение отредактировал Andrey_A 11 марта 2012 - 20:31Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:36 / #57 -
CreateHtaForDisplayPicture.vbs
открывает на 10 секунд изображение под курсором (jpeg;jpg;gif;bmp)
Используется FunctionsPlus.vbs - файл можете скачать в шапке темы' CreateHtaForDisplayPicture.vbs
'======================== Описание ===========================
' Открывает на 10 секунд изображение под курсором (jpeg;jpg;gif;bmp)
' можно открывать несколько по очереди
' параметры %P%N
' Основан на коде Steve Yandl
' Автор: Аверин Андрей
' Версия: 1.2 (26.08.2011 - 14.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'==================== Изменяемые пути ===================================
FuncPlus = "%COMMANDER_PATH%\Scripts\Include\FunctionsPlus.vbs"
'========================================================================
If WScript.Arguments.Count = 0 Then
MsgBox "Не хватает параметров! Должен прописан Один параметр %P%N",_
vbOKOnly & vbInformation, "Кратковременый просмотр изображений"
WScript.Quit
End If
FuncPlus = CreateObject("WScript.Shell").ExpandEnvironmentStrings(FuncPlus)
strPictFile = WScript.Arguments(0)
Set FSO = CreateObject("Scripting.FileSystemObject")
strArgExt = LCase(FSO.GetExtensionName(strPictFile))
If InStr(";jpeg;jpg;gif;bmp;png;", ";" & strArgExt & ";") = 0 Then WsEnd
If Not FSO.FileExists(strPictFile) Then WsEnd
Execute FSO.OpenTextFile(FuncPlus).ReadAll
Set objShell = CreateObject("Shell.Application")
strArgParent = FSO.GetParentFolderName(strPictFile)
strArgFileName = FSO.GetFileName(strPictFile)
Set objFolder = objShell.NameSpace(strArgParent)
Set objItem = objFolder.ParseName(strArgFileName)
strDimensions = objFolder.GetDetailsOf(objItem, 31) ' размер изображения
If InStr(strDimensions, " x ") > 0 Then
strSize = Replace(strDimensions, " x ", ", ") : strSize = Mid(strSize,2,Len(strSize)-2)
ii = InStr(strSize, ",") : w = Left(strSize, ii - 1) + 20 : h = Mid(strSize, ii + 1) + 20
strSize = w & ", " & h
End If
Text = "<HTML>" & vbNewLine &_
"<HTA:Application" & vbNewLine &_
"Caption=" & Chr(34) & "no" & Chr(34) & vbNewLine &_
"Borderstyle="&Chr(34)&"complex"&Chr(34) & vbNewLine &_
"Scroll=" & Chr(34) & "no" & Chr(34) & ">" & vbNewLine &_
"<SCRIPT Language=" & Chr(34) & "VBScript" & Chr(34) & ">" & vbNewLine &_
"Sub Window_onload" & vbNewLine &_
"Window.resizeTo " & strSize & vbNewLine &_
"idTimer = window.setTimeout(" & Chr(34) & "CloseShop" & Chr(34) &_
", " & CStr(10 * 1000) & ", " & Chr(34) & "VBScript" & Chr(34) & ")" & vbNewLine &_
"End Sub" & vbNewLine &_
"Sub CloseShop" & vbNewLine &_
"window.clearTimeout(idTimer)" & vbNewLine &_
"self.close()" & vbNewLine &_
"End Sub" & vbNewLine &_
"</SCRIPT>" & vbNewLine &_
"<BODY background=" & Chr(34) & strPictFile & Chr(34) & ">" & vbNewLine &_
"</BODY>" & vbNewLine &_
"</HTML>"
strHTAname = FFNoExistCount(FSO.GetSpecialFolder(2) & "\Temp0.hta")
FSO.CreateTextFile strHTAname, True
FSO.GetFile(strHTAname).OpenAsTextStream(2, 0).Write Text
CreateObject("WScript.Shell").Run "mshta.exe " & Chr(34) & strHTAname & Chr(34), 0, True
FSO.DeleteFile strHTAname
Set objFolder = Nothing : Set objItem = Nothing : Set objShell = Nothing : WsEnd
Sub WsEnd : Set FSO = Nothing : WScript.Quit : End SubСообщение отредактировал Andrey_A 11 марта 2012 - 20:32Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:45 / #58 -
Move.au3
Перемещение выделенных файлов и папок без запроса; Move.au3
; ================ Описание =============================
; Перемещение выделенных файлов и папок без запроса
; =============== Параметры =============================
; {Список файлов} {Путь куда перемещать}
;%L %t
; Автор: Аверин Андрей
; Версия: 1.0 (04.04.2011)
; Mail: Averin-And@yandex.ru
; Site: http://tc-image.3dn.ru
; ========================================================
$aList = _TCHLoadFileList($CmdLine[1])
For $i = 1 To $aList[0]
if StringMid($aList[1], StringLen($aList[1]), 1) = "\" Then
DirMove($aList[$i], $CmdLine[2], 1)
else
FileMove($aList[$i], $CmdLine[2])
Endif
Next
; Загрузка списка, чтобы выстроить список файлов, полученных
; с параметров %L или %l Total Commandera
Func _TCHLoadFileList($sFileName)
Local $asList[1] = [0]
Local $hfList = FileOpen($sFileName, 0)
While 1
$sLine = FileReadLine($hfList)
If @error Then Exitloop
ReDim $asList[UBound($asList)+1]
$asList[UBound($asList)-1] = $sLine
Wend
FileClose($hfList)
$asList[0] = UBound($asList)-1
Return $asList
EndFuncСообщение отредактировал Andrey_A 11 марта 2012 - 20:33Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:52 / #59 -
MoveGroupFileInFolders.vbs
Перемещение выделенных файлов\папок по заданному количеству в отдельные (создаваемые) папки' MoveGroupFileInFolders.vbs
'======================== Описание =====================================
' Перемещение выделенных файлов\папок по заданному количеству в отдельные (создаваемые) папки
'======================= Параметры =====================================
' 1-й параметр: файл-список
' 2-й параметр: папка\куда\перемещаются\файлы
' 3-й параметр: количество перемещаемых файлов в каждую папку
' если параметр отсутствует или параметр = 0 , то выводится диалог ввода
'======================== Примеры =====================================
' %L %t 50
' %L %p 50
' %L %t
' Автор: Batya & Аверин Андрей
' Версия: 1.1 (07.09.2010 - 29.10.2011)
' Site: http://tc-image.3dn.ru
'========================================================================
Option Explicit
'================= Изменяемые параметры =================================
Const Rank = 3 'Минимальное количество цифр в создаваемых папках
'========================================================================
Dim FileList, List, F, Folder, Count, i, n, Path, Cnt, Mess
Mess = "Перемещение выделенных файлов по заданному к-ву"
With WScript
Cnt = .Arguments.Count
If Cnt < 2 Then
MsgBox "Не хватает параметров! Должно быть минимум Два параметра" & vbNewLine &_
"пример: %L %p", vbOKOnly & vbInformation, Mess
.Quit
End If
FileList = .Arguments(0) : Folder = .Arguments(1)
If Cnt > 2 Then
Count = CInt(.Arguments(2))
Else
InputNumer
End If
If Count <= 0 Then InputNumer
End With
With CreateObject("Scripting.FileSystemObject")
List = Split(.OpenTextFile(FileList).ReadAll, vbNewLine)
If Right(Folder, 1) <> "\" Then Folder = Folder & "\"
n = 1 : i = Count
For Each F In List
If F <> "" Then
If i >= Count Then
If Len(CStr(n)) < Rank Then
Path = Folder & Right(String(Rank, "0") & CStr(n), Rank) & "\"
Else
Path = Folder & CStr(n) & "\"
End If
If Not .FolderExists(Path) Then .CreateFolder(Path)
i = 1 : n = n + 1
Else
i = i + 1
End If
If .FileExists(F) Then .MoveFile F, Path
If .FolderExists(F) Then
If Right(F, 1) = "\" Then F = Left(F, Len(F) - 1)
.MoveFolder F, Path
End If
End If
Next
End With
Wscript.Quit
Sub InputNumer
Count = InputBox("Введите ЧИСЛО по СКОЛЬКО" & vbNewLine &_
"файлов перемещать в отдельные папки", Mess, 3)
If Len(Count) = 0 Then WScript.Quit
Count = CInt(Count)
If Count = 0 Then Count = 3
End Sub
пример MoveFileInAssociationsFolders.txtСообщение отредактировал Andrey_A 11 марта 2012 - 20:33Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:55 / #60
Статистика форума, пользователей онлайн: 0 (за последние 30 минут)
---
- Создано тем
- 107
- Всего сообщений
- 4048
- Пользователей
- 99000
- Новый участник
- termojader
Powered by Bullet Energy Forum

