Скрипты для 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 -
MoveInEveryOneNameFolder.vbs
Перемещение выделенных файлов каждый в отдельную именную папку' MoveInEveryOneNameFolder.vbs
'======================== Описание =========================
' Перемещение выделенных файлов каждый в отдельную именную папку
' В параметрах вызова из TC должно быть прописанo Два параметра:
' {список файлов} {"путь\перемещения\"}
' %L %p
' %L %t
' Автор: Аверин Андрей
' Версия: 1.1 (2010 - 29.10.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'============================================================
If WScript.Arguments.Count > 1 Then
With CreateObject("Scripting.FileSystemObject")
Set ListFile = .OpenTextFile(WScript.Arguments(0), 1)
tPath = WScript.Arguments(1)
Do While Not ListFile.AtEndOfStream
SelFile = ListFile.ReadLine : Name = .GetBaseName(SelFile)
If Not .FolderExists(tPath & Name) Then .CreateFolder(tPath & Name)
.MoveFile SelFile, tPath & Name & "\"
Loop
End With
Set ListFile = Nothing
Else
MsgBox "Не заданы параметры!" & vbNewLine &_
"Должно быть ДВА параметра. Пример: %L %t",_
vbOKOnly + vbInformation, "Перемещение файлов каждый в именную папку"
End If
WScript.QuitСообщение отредактировал Andrey_A 11 марта 2012 - 20:34Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:57 / #61 -
MoveMusicTracks.au3
Перемещение выделенных музыкальных файлов в папки c именами артистов;MoveMusicTracks.au3
; ======================== Описание ============================
; Перемещение выделенных музыкальных файлов в папки c именами артистов
;(если папки нет, она создаётся)
; ======================== Параметры ============================
; {Список файлов} {Путь куда перемещать}
;%L %t
;
; Автор: Аверин Андрей
; Версия: 1.0 (04.04.2011)
; Mail: Averin-And@yandex.ru
; Site: http://tc-image.3dn.ru
; ===============================================================
$aList = _TCHLoadFileList($CmdLine[1])
$Stroka = "&;Feat; и;Ft.;Vs.;(;+;Феат;,;-and-;_and_; and при уч.;feat.; При Участии;,; pres; pres.; present; vs; vs.; ft;(vs;уч. "
$Rez = StringSplit($Stroka, ";", 1)
$k = 0
For $i = 1 To $aList[0]
$sTemp = $aList[$i]
$sTemp = StringRight($sTemp, StringLen($sTemp) - StringInStr($sTemp,"\",1,-1))
if StringInStr($sTemp, " - " ,1, 1) > 0 Then
For $s = 1 To UBound($Rez) - 1
$sss = StringUpper($Rez[$s])
if StringInStr(StringUpper($sTemp), $sss , 1, 1) > 0 Then
if StringInStr($sTemp, " - " ,1, 1) > StringInStr(StringUpper($sTemp), $sss ,1, 1) Then
$sTemp = StringLeft($sTemp, StringInStr(StringUpper($sTemp), $sss ,1, 1) - 1)
$s = UBound($Rez) - 1
$k = 1
Endif
Endif
Next
if $k = 0 Then $sTemp = StringLeft($sTemp, StringInStr($sTemp, "-" ,1, 1) - 1)
$k = 0
$sTemp = StringStripWS($sTemp, 3); удалить пробелы в начале и вконце строки
if StringLen($sTemp) <> 0 Then
DirCreate($CmdLine[2] & $sTemp); создаём папку именем артиста
FileMove($aList[$i], $CmdLine[2] & $sTemp)
Endif
Endif
$sTemp = ""
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:34Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:58 / #62 -
MoveOnLevelUp.vbs
Перемещение выделенных файлов\папок на уровень вверх' MoveOnLevelUp.vbs
'===================== Описание ======================
' Перемещение выделенных файлов\папок на уровень вверх
' Параметры: {файл-список}
' Пример %L
' Автор: Аверин Андрей
' Версия: 1.3 (11.05.10 - 14.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'=======================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ListFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
Do While Not ListFile.AtEndOfStream
SelFile = ListFile.ReadLine : rPath = FName(FName(SelFile)) & "\"
On Error Resume Next
If FSO.FileExists(SelFile) Then FSO.MoveFile SelFile, rPath
If FSO.FolderExists(SelFile) Then FSO.MoveFolder Left(SelFile, Len(SelFile) - 1), rPath
Loop
ListFile.Close : Set ListFile = Nothing : Set FSO = Nothing : WScript.Quit
Function FName(pPath) : FName = FSO.GetParentFolderName(pPath) : End FunctionСообщение отредактировал Andrey_A 11 марта 2012 - 20:35Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 18:58 / #63 -
AddFilesInListTCIgnore.vbs
Добавление имён выделенных файлов в список исключений TC с активацией фильтра
Используется TCFS2.exe - файл можете скачать в шапке темы' AddFilesInListTCIgnore.vbs
'======================== Описание =====================================
' Добавление имён выделенных файлов в список исключений TC с активацией фильтра
' Параметры: %F "<путь к файлу-списку исключений>"
' Пример: %F "%%COMMANDER_PATH%%\tcignore.txt"
' Автор: Flasher & Аверин Андрей
' Версия: 1.1 (15.07.2011 - 21.11.2011)
' Site: http://tc-image.3dn.ru
'==================== Изменяемые пути ==================================
TCFS2 = "%COMMANDER_PATH%\Utilities\TotalCom\TCFS2\TCFS2.exe"
'========================================================================
With CreateObject("Scripting.FileSystemObject")
On Error Resume Next
.OpenTextFile(CreateObject("WScript.Shell").ExpandEnvironmentStrings(WScript.Arguments(1)), 8, True).Write .OpenTextFile(WScript.Arguments(0), 1).ReadAll
End With
CreateObject("WScript.Shell").Exec TCFS2 & " /ef ""tcm(2922) tcm(2922), test(tcini(Configuration, IgnoreListFileEnabled, #)) | tcm(2922)"""
WScript.QuitСообщение отредактировал Andrey_A 11 марта 2012 - 20:35Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 19:05 / #64 -
ReplaceTextAss.vbs
Быстрое добавление файла в ассоциации ТС + вызов окна ассоциаций TC + ENTER (обновление)
Используется TCMC.exe - файл можете скачать в шапке темы' ReplaceTextAss.vbs
'======================== Описание =====================================
' Быстрое добавление файла в ассоциации ТС + вызов окна ассоциаций TC + ENTER (обновление)
' Заменяет FilterN= на FilterN=Имя или расширение в файле ассоциаций
'======================= Параметры =====================================
' 1-й параметр: файл, где прописаны ассоциации
' 2-й параметр: текст для поиска (FilterN=)
' 3-й параметр: текст для замены (FilterN=;%N)
'======================== Примеры =====================================
' "%%COMMANDER_PATH%%\WinAssociations.ini" "Filter5=" "Filter5=;*.%E" - Добавление РАСШИРЕНИЯ под курсором в Filter_5
' "%%COMMANDER_PATH%%\Wincmd.ini" "Filter5=" "Filter5=;%N" - Добавление ИМЕНИ под курсором в Filter_5
' Автор: Аверин Андрей
' Версия: 1.1 (2010 - 28.10.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'========================================================================
Option Explicit
Dim F, Str1, Str2, Text
With WScript
If .Arguments.Count < 3 Then
MsgBox "Не хватает параметров!!!", vbOKOnly & vbInformation,_
"Добавление файла в ассоциации" : .Quit
End If
F = .Arguments(0) : Str1 = .Arguments(1) : Str2 = .Arguments(2)
End With
With CreateObject("Scripting.FileSystemObject")
F = .GetAbsolutePathName(CreateObject("WScript.Shell").ExpandEnvironmentStrings(F))
Text = .OpenTextFile(F, 1).ReadAll
Text = Replace(Text, Str1, Str2, 1, -1, 1)
.OpenTextFile(F, 2).Write Text
End With
With CreateObject("WScript.Shell")
WScript.Sleep 100
.Exec("%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMC.exe 150 CM519")
WScript.Sleep 100 : .SendKeys "{Enter}" : WScript.Quit
End WithСообщение отредактировал Andrey_A 11 марта 2012 - 20:36Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 19:07 / #65 -
YesNoAssociations.vbs
Включение\Выключение внутренних ассоциации в Total Commander
Используется TCMCWindow.exe - файл можете скачать в шапке темы' YesNoAssociations.vbs
'======================== Описание =====================================
' Включение\Выключение внутренних ассоциации в Total Commander
' Автор: Аверин Андрей
' Версия: 1.0 (09.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'==================== Изменяемые пути ===================================
Ass = "%COMMANDER_PATH%\WinAssociations.ini" ' файл, где прописаны ассоциации
Exe = "%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMCWindow.exe" ' утилита
'========================================================================
S1 = "[+Associations]" : S2 = "[Associations]"
Ass = CreateObject("WScript.Shell").ExpandEnvironmentStrings(Ass)
Txt = CreateObject("Scripting.FileSystemObject").OpenTextFile(Ass).ReadAll
If InStr(Txt, S1) > 0 Then Txt = Replace(Txt, S1, S2) Else Txt = Replace(Txt, S2, S1) End If
CreateObject("Scripting.FileSystemObject").OpenTextFile(Ass, 2).Write Txt
CreateObject("WScript.Shell").Exec(Chr(34) & Exe & Chr(34) & " ttcmc=CM519 pause=40 {ENTER}")
WScript.QuitСообщение отредактировал Andrey_A 11 марта 2012 - 20:37Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 19:08 / #66 -
RunFilesExtInProgram.vbs
Запуск ВЫДЕЛЕННЫХ файлов ПО ОЧЕРЕДИ в нужной вам программе заданной в параметрах' RunFilesExtInProgram.vbs
'======================== Описание =====================================
' Запуск ВЫДЕЛЕННЫХ файлов ПО ОЧЕРЕДИ в нужной вам программе заданной в параметрах
' если расширение не совпадает с ассоциациями, просто открывается программа
'======================== Параметры =====================================
' 1-й параметр: файл список
' 2-й параметр: Программа
' 3-й параметр: Строка расширений ";ext1;ext2;ext3;"
'======================== Примеры =====================================
' %L "%%COMMANDER_PATH%%\AkelPad.exe" ";txt;ini;mnu;"
' %L "%%COMMANDER_PATH%%\Plugins\wlx\Imagine\Imagine.exe" ";txt;ini;mnu;"
' %L "%COMMANDER_PATH%\Programs\Players\Winamp\Winamp.exe" ";mp3;wma;"
' Автор: Аверин Андрей
' Версия: 1.0 (21.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'======================================================================
If WScript.Arguments.Count < 3 Then
MsgBox "Не хватает параметров!", vbOKOnly & vbInformation, "" : WScript.Quit
End If
With CreateObject("Scripting.FileSystemObject")
Set ListFile = .OpenTextFile(GetPath(WScript.Arguments(0)), 1)
Program = GetPath(WScript.Arguments(1))
If Not .FileExists(Program) Then
MsgBox "Не верно указана программа", vbOKOnly & vbInformation, "" : WScript.Quit
End If
LineExt = WScript.Arguments(2)
Do While Not ListFile.AtEndOfStream
Param = GetPath(ListFile.ReadLine) : Ext = LCase(.GetExtensionName(Param)) : File = ""
If InStr(LineExt, ";" & Ext & ";") > 0 Then File = Chr(32) & Chr(34) & Param & Chr(34)
CreateObject("WScript.Shell").Run Chr(34) & Program & Chr(34) & File , 1, False
Loop
End With
ListFile.Close : Set ListFile = Nothing : WScript.Quit
Function GetPath(pPath)
GetPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings(pPath)
End FunctionСообщение отредактировал Andrey_A 11 марта 2012 - 20:42Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 19:15 / #67 -
RunFilesInProgram.vbs
Запуск выделенных файлов по очереди в прописанной в скрипте программе' RunFilesInProgram.vbs
'======================== Описание =====================================
' Запуск выделенных файлов по очереди в программе
' если расширение файла не совпадает с поддерживаемыми , просто открывается программа
' если перетянуть любой файл на кнопку, то он также откроется в программе
' Пример: %L
'
' Автор: Аверин Андрей
' Версия: 1.1 (21.11.2011 - 01.12.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'================= Изменяемые параметры ================================
Program = "%COMMANDER_PATH%\AkelPad.exe" ' программа
LineExt = ";txt;ini;mnu;" ' строка поддерживаемых расширений
'========================================================================
Dim WSH
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Cnt = WScript.Arguments.Count : k = 0
Program = GetPath(Program)
If Not FSO.FileExists(Program) Then
MsgBox "Не верно указана программа", vbOKOnly & vbInformation, "" : WsEnd
End If
If Cnt = 0 Then
RunProgram : WsEnd
End If
Param = GetPath(WScript.Arguments(0))
If LCase(FSO.GetExtensionName(Param)) = "tmp" Then
List = Split(FSO.OpenTextFile(Param).ReadAll, vbNewLine)
Else
Cnt = 1 : RunProgram : WsEnd
End If
For i = 0 To Ubound(List)
Param = GetPath(List(i))
Ext = LCase(FSO.GetExtensionName(Param))
If InStr(LineExt, ";" & Ext & ";") > 0 Then
Cnt = 1 : k = 1 : RunProgram
End If
Next
if k = 0 Then
Cnt = 0 : Param = "" : RunProgram
End If
WsEnd
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function
Sub WsEnd : Set FSO = Nothing : Set WSH = Nothing : WScript.Quit : End Sub
Sub RunProgram
If Cnt = 1 Then Param = Chr(32) & Chr(34) & Param & Chr(34)
WSH.Run Chr(34) & Program & Chr(34) & Param , 1, False
End SubСообщение отредактировал Andrey_A 11 марта 2012 - 20:42Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 19:17 / #68 -
RunFilesUserProgram.vbs
Запуск выделенных файлов по очереди в нужных вам программах прописанных в скрипте' RunFilesUserProgram.vbs
'======================== Описание =====================================
' Запуск выделенных файлов по очереди в нужных вам программах прописанных в скрипте
' если расширение не совпадает с ассоциациями, просто открывается программа
'======================== Параметры =====================================
' 1-й параметр: файл список
' 2-й параметр: N - номер ассоциаций
'======================== Примеры =====================================
' %L 1 - открываются файлы в AkelPad
' %L 2 - открываются файлы в Imagine
' %L 3 - открываются файлы в Vlc
'
' Автор: Аверин Андрей
' Версия: 1.0 (21.11.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'========================================================================
If WScript.Arguments.Count <2 Then
MsgBox "Не хватает параметров!", vbOKOnly & vbInformation, "" : WScript.Quit
End If
Dim WSH, File
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Set ListFile = FSO.OpenTextFile(GetPath(WScript.Arguments(0)), 1)
Do While Not ListFile.AtEndOfStream
Param = GetPath(ListFile.ReadLine)
Ext = LCase(FSO.GetExtensionName(Param))
File = ""
' Ассоциации. LineExt - строка расширений, Program - Программа
' Необходимо вставить свои пути
Select Case WScript.Arguments(1)
Case 1
LineExt = ";txt;ini;mnu;"
Program = "%COMMANDER_PATH%\AkelPad.exe"
CheckExt
Case 2
LineExt = ";jpg;png;gif;"
Program = "%COMMANDER_PATH%\Plugins\wlx\Imagine\Imagine.exe"
CheckExt
Case 3
LineExt = ";mp3;wma;"
Program = "%COMMANDER_PATH%\Programs\Players\Winamp\Winamp.exe"
CheckExt
' условий может быть сколько угодно
' Case 4
' LineExt = ";ext1;ext2;ext3;"
' Program = "%COMMANDER_PATH%\Программа.exe"
' CheckExt
' Case 5
' LineExt = ";ext1;ext2;ext3;"
' Program = "%COMMANDER_PATH%\Программа.exe"
' CheckExt
End Select
Program = GetPath(Program)
If Not FSO.FileExists(Program) Then
MsgBox "Не верно указана программа", vbOKOnly & vbInformation, "" : WsEnd
End If
WSH.Run Chr(34) & Program & Chr(34) & File , 1, False
Loop
WsEnd
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function
Sub WsEnd : ListFile.Close : Set ListFile = Nothing : Set FSO = Nothing : Set WSH = Nothing : WScript.Quit : End Sub
Sub CheckExt
If InStr(LineExt, ";" & Ext & ";") > 0 Then File = Chr(32) & Chr(34) & Param & Chr(34)
End SubСообщение отредактировал Andrey_A 11 марта 2012 - 20:42Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 19:17 / #69 -
NameByDate.vbs
Переименование выделенного -- добавление даты перед именем' NameByDate.vbs
'======================== Описание =====================
' Переименование выделенного -- добавление даты перед именем
' Параметры %L
' Автор: Volniy & Аверин Андрей
' Версия: 1.1 (2006 - 14.11.2011)
' Site: http://tc-image.3dn.ru
'======================================================
With CreateObject("Scripting.FileSystemObject")
Set StreamFile = .OpenTextFile(WScript.Arguments(0), 1)
Do While Not StreamFile.AtEndOfStream
Set theFile = .GetFile(StreamFile.ReadLine)
theFile.Name = "[" & FormatDateTime(Date,vbShortDate) & "] " & theFile.Name
Loop
End With
Set theFile = Nothing : Set StreamFile = Nothing : Wscript.QuitСообщение отредактировал Andrey_A 11 марта 2012 - 20:45Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 19:21 / #70
Статистика форума, пользователей онлайн: 0 (за последние 30 минут)
---
- Создано тем
- 107
- Всего сообщений
- 4048
- Пользователей
- 99000
- Новый участник
- termojader
Powered by Bullet Energy Forum

