Скрипты для 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 -
FilesInLineInBufer.vbs
Расширения\имена выделенных файлов преобразуются в одну строку и отправляются в буфер обмена
Используется NirCmd.exe - файл можете скачать в шапке темы' FilesInLineInBufer.vbs
'======================== Описание =======================================
' Расширения\имена выделенных файлов преобразуются в одну строку и отправляются в буфер обмена
' разделитель между расширениями\именами, начало и конец строки в параметрах
' (одинаковые расширения\имена в строку не добавляются)
'======================== Параметры =======================================
' 1-й параметр: Cписок файлов
' 2-й параметр:
' "1" - в строку войдут расширения файлов
' "2" - в строку войдут имена файлов
' "3" - в строку войдут "чистые имена" файлов (без расширения)
' 3-й параметр: Разделитель
' 4-й параметр: Начало строки
' 5-й параметр: Конец строки
'======================== Примеры ======================================
' %L "1" ";*." "*." ";" - результат *.vbs;*.txt;*.au3;*.exe;*.cmd;
' %L "2" ";" - результат Read_me.txt;Wincmd.ini;Wcmicons.dll
' %L "3" "|" - результат Read_me|Wincmd|Wcmicons
' Автор: Аверин Андрей
' Версия: 1.2 (20.12.2010 - 23.10.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'==================== Изменяемые пути ====================================
NirCmd = "%COMMANDER_PATH%\NirCmd.exe"
'==========================================================================
Cnt = WScript.Arguments.Count
If Cnt > 2 Then
Dim FSO, WSH
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = WScript.CreateObject("WScript.Shell")
Endd = "" : Home = "" : Text = ""
Delim = WScript.Arguments(2)
If Cnt > 3 Then
Home = WScript.Arguments(3)
If Cnt > 4 Then Endd = WScript.Arguments(4)
End If
Set ListFile = FSO.OpenTextFile(GetPath(WScript.Arguments(0)), 1)
Do While Not ListFile.AtEndOfStream
File = ListFile.ReadLine
Select Case WScript.Arguments(1)
Case 1 Stroka = FSO.GetExtensionName(File)
Case 2 Stroka = FSO.GetBaseName(File) & "." & FSO.GetExtensionName(File)
Case 3 Stroka = FSO.GetBaseName(File)
End Select
If InStr(UCase(Text), UCase(Stroka)) = 0 Then Text = Text & Stroka & Delim
Loop
Text = Home & Left(Text, Len(Text) - Len(Delim)) & Endd
Tmp = FSO.GetSpecialFolder(2) & "\" & FSO.GetTempName()
FSO.CreateTextFile(Tmp, True).Write Text
WSH.Run Chr(34) & GetPath(NirCmd) & Chr(34) & " " & "clipboard readfile " & Tmp , 2,True
WScript.Sleep 1000
FSO.DeleteFile Tmp
Else
MsgBox "Не хватает параметров!" & vbNewLine &_
"Должно быть минимум ТРИ параметра! ""%L"" ""1"" "";""" & vbNewLine &_
"A у Вас прописано " & Cnt & " !!! " , vbOKOnly &_
vbInformation, "Расширения\Имена выделенных файлов одной строкой"
End If
Set ListFile = Nothing : Set WSH = Nothing : Set FSO = Nothing: WScript.Quit
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End FunctionСообщение отредактировал Andrey_A 9 марта 2012 - 01:17Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 03:29 / #11 -
CopyLineInPathToClip.au3
Преобразование путей выделенных файлов в различные формы (строки) и отправка полученного в буфер обмена; CopyLineInPathToClip.au3
; ======================== Описание ==========================================
; Преобразование путей выделенных файлов в различные формы (строки) и отправка полученного в буфер обмена
; ======================== Параметры ==========================================
; Может быть от 1 до 11-ти параметров командной строки
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; !!! Первые ТРИ параметра обязательны !!!
; 1) Номер библиотеки "ПОИСКА И ЗАМЕН"
; 2) Фал список или %L
; 3) Номер (условие преобразования пути)
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; 4) Текстовая вставка перед путём
; 5) Текстовая вставка после пути
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; 6) Дополнительная строка поиска
; 7) Дополнительная строка замен
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; 8) Номер (условие преобразования пути) (вставляется справа от вышеописанного)
; 9) Номер (условие преобразования пути) (вставляется слева от вышеописанного)
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; 10) Текстовая вставка (вставляется справа от вышеописанного)
; 11) Текстовая вставка (вставляется слева от вышеописанного)
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; т.е конфигурация получаемой строки справа налево (параметры)
; (10) <-- (8) <-- (4) <-- (3) --> (5) --> (9) --> (11)
; (вставка) (преобр.) (вставка) (преобр.) (вставка) (преобр.) (вставка)
; (текст) (путь) (текст) (путь) (текст) (путь) (текст)
;
; ======================== Параметр №1 ========================================
; Библиотека ПОИСКА и ЗАМЕН. Каждый может организовать свой набор построчной замены пути.
; В скрипте уже прописаны три библиотеки:
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; №1 Пустая. Ничего не изменяет в пути
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; №2 Заменяет обычные пути на переменные окружения.
; путь c:\Total Commander Commander\LANGUAGE\Wcmd_Rus.ini будет заменён на %COMMANDER_PATH%\LANGUAGE\Wcmd_Rus.ini
; путь c:\Program Files\Movie Maker\MOVIEMK.exe заменён на %PROGRAMFILES%\Movie Maker\MOVIEMK.exe
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; №3 Удаляет из пути переменные окружения
; путь c:\Total Commander Commander\LANGUAGE\Wcmd_Rus.ini будет заменён на LANGUAGE\Wcmd_Rus.ini
; путь c:\Program Files\Movie Maker\MOVIEMK.exe на Movie Maker\MOVIEMK.exe
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Для того чтобы создать свою библиотеку в скрипте после библиотеки №3 необходимо прописать
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;if $CmdLine[1] = N Then ; N - число следующей библиотеки (в данном случае 4)
;_Add($Line7,$Line6)
; _Add("ЧТО ИСКАТЬ", "ЧЕМ ЗАМЕНЯТЬ"); условий поиска может быть сколь угодно
;Endif
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; Чтобы использовать ту или иную библиотеку необходимо прописать в командной строке её НОМЕР
; Принцип работы: путь переданный %L обрабатывается всеми условиями из библиотеки
; Далее поступает для обработки внешними параметрами, описанными ниже
;
; ======================== Параметр №3 №8 №9 ==================================
; НОМЕР (условие дополнительного преобразования пути)
; к примеру после обработки в библиотеки поиска и замен путь выглядит следующим образом:
; c:\Total Commander\Scripts\Buffer\Read Me.txt - используя НОМЕРА будет получаться следующее:
; {1 %L 0} - 0 - ничего не делает = c:\Total Commander\Scripts\Buffer\Read Me.txt
; {1 %L 1} - 1 - полный путь в кавычках = "c:\Total Commander\Scripts\Buffer\Read Me.txt"
; {1 %L 2} - 2 - расширение = txt
; {1 %L 3} - 3 - расширение в кавычках = "txt"
; {1 %L 4} - 4 - "чистое" имя = Read Me
; {1 %L 5} - 5 - "чистое" имя в кавычках = "Read Me"
; {1 %L 6} - 6 - имя с расширением = Read Me.txt
; {1 %L 7} - 7 - имя с расширением в кавычках = "Read Me.txt"
; {1 %L 8} - 8 - путь без расширения = c:\Total Commander\Scripts\Buffer\Read Me
; {1 %L 9} - 9 - путь без расширения в кавычках = "c:\Total Commander\Scripts\Buffer\Read Me"
; {1 %L 10} - 10 - путь родительской папки = c:\Total Commander\Scripts\Buffer
; {1 %L 11} - 11 - путь родительской папки в кавычках = "c:\Total Commander\Scripts\Buffer"
; {1 %L 12} - 12 - путь дедушкиной папки = c:\Total Commander\Scripts
; {1 %L 13} - 13 - путь дедушкиной папки в кавычках = "c:\Total Commander\Scripts"
; {1 %L 14} - 14 - путь без диска = Total Commander\Scripts\Buffer\Read Me.txt
; {1 %L 15} - 15 - путь без диска в кавычках = "Total Commander\Scripts\Buffer\Read Me.txt"
; {1 %L 16} - 16 - путь без диска и корня = Scripts\Buffer\Read Me.txt
; {1 %L 17} - 17 - путь без диска и корня в кавычках = "Scripts\Buffer\Read Me.txt"
; {1 %L 20} - 20 - путь с короткими именами = C:\TOTALC~2\Scripts\Buffer\README~1.TXT
; {1 %L 21} - 21 - путь с короткими именами в кавычках = "C:\TOTALC~2\Scripts\Buffer\README~1.TXT"
; {1 %L 22} - 22 - короткие имена = README~1.TXT
; {1 %L 23} - 23 - короткие имена в кавычках = "README~1.TXT"
; ======================== Параметры №4 №5 №10 №11 ===========================
; Позволяет До и После преобразованного пути вставлять нужную текстовую строку
; В строке могут использоваться любые символы, символы % и " должны удваиваться %% ""
; Вместо кавычек внутри строки лучше использовать двойные '' (чёрточки), которые будут преобразованы в кавычки
;
; ======================== Параметры №6 №7 ===================================
; Хотя и есть основные Библиотеки ПОИСКА и ЗАМЕН периодически необходимо
; независимо от них внести Дополнительную замену в путь (к примеру заменить "\" на "\\")
; Это обычные текстовые строки, правила такие же как и описано выше
; Параметр №6 - "ЧТО ИСКАТЬ" №7 - "ЧЕМ ЗАМЕНИТЬ"
;
; ======================= Дополнение == Исключение =============================
; Если первый параметр -1 , то скрипт посылает в буфер обмена текст , прописанный в параметре 2
; -1 "этот текст будет скопирован в буфер обмена"
;
; ======================== Примеры ==========================================
; пример показывающий принцип работы всех параметров:
; параметры: 1 %L 0 " - может - " " - принимать - " "\" "\\" 6 7 " - строка - " " - любой вид-"
; результат: - строка - Wcmd_Rus.ini - может - C:\\Total Commander\\LANGUAGE\\Wcmd_Rus.ini - принимать - "Wcmd_Rus.ini" - любой вид-
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 1 %L 2 "*." ";"
; результат: *.txt;
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 1 %L 20 "file://"
; результат: file://C:\TOTALC~1\LANGUAGE\Wcmd_Rus.ini
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 3 %L 1 "Copy " " ''%%SystemRoot%%\system32\'' /y"
; результат: Copy "LANGUAGE\Wcmd_Rus.ini" "%SystemRoot%\system32\" /y
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 1 %L 6 "regsvr32.exe ''%%WINDIR%%\system32\" "''"
; результат: regsvr32.exe "%WINDIR%\system32\DynWrapX.dll"
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 3 %L 1 "regedit /s "
; результат: regedit /s "Files\Reg\Autorun\Total_Commander.reg"
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 1 %L 0 "del /F /S /Q ''" "\*.*''"
; результат: del /F /S /Q "C:\Total Commander\Backup\*.*" (для папок)
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 1 %L 6 " Exec(`''%%a\AkelPad.exe'' ''%%a\AkelFiles\Docs\" "''`) Icon(''%%a\AkelFiles\Plugs\ToolBarImage.dll'',90)" "" "" 7
; результат: "AkelHisTory-Rus.txt" Exec(`"%a\AkelPad.exe" "%a\AkelFiles\Docs\AkelHisTory-Rus.txt"`) Icon("%a\AkelFiles\ToolBarImage.dll",89) (для меню AkelPad)
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 1 %L 0 "=''\''" "\''''" "\" "\\" 5
; результат: "KillOK"="\"C:\\TC Image\\Utilities\\Systems\\KillOk\\KillOK.exe\""
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 1 %L 0 "@=""\""" "\""\""%%1\""""" "\" "\\"
; результат: @="\"C:\\Total Commander\\Plugins\\exe\\AkelPad\\AkelPad.exe\" \"%1\""
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 1 %L 5 "'' ''~$folder.desktop$'' " " '''' ''~$folder.nircmd$\" "" "" 6 6 "nircmd.exe shortcut ''~$folder.nircmd$\" "'' ''0''"
; результат: nircmd.exe shortcut "~$folder.nircmd$\TOTALCMD.exe" "~$folder.desktop$" "TOTALCMD" "" "~$folder.nircmd$\TOTALCMD.exe" "0" (ярлык в nircmd)
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 2 %L 1 "" " ''%%1''"
; результат: "%COMMANDER_PATH%\AkelPad.exe" "%1"
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; параметры: 2 %L 0 "CD " "\"
; результат: CD %COMMANDER_PATH%\Plugins\ (для папок)
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
; Автор: Loopback & Аверин Андрей
; Версия: 1.3 (10.10.2010 - 04.01.2012)
; Site: http://tc-image.3dn.ru
; ==============================================================================
Global $aSubst[1][2] = [[0,0]]
Global $sResult = "", $sTemp
If $CmdLine[1] = -1 Then
ClipPut($CmdLine[2])
Exit
Endif
If $CmdLine[0] < 3 Then
MsgBox(16 + 262144, "Копирование в буфер изменённые пути выделенных файлов\папок", _
"Не хватает параметров!" & @CRLF & "Должно быть минимум ТРИ 1 %L 0" & @CRLF & _
"Пропишите и повторите попытку!" & @CRLF & "Подробную информацию читайте в комментариях скрипта", 10)
Exit
Endif
$InsertEdgeTextRight =""
$InsertEdgeTextLeft =""
$InsertTextRight =""
$InsertTextLeft =""
$RightEdgeCentr =""
$LeftEdgeCentr =""
$LineCentr =""
$Line6 =">"
$Line7 =">"
If $CmdLine[0] > 5 And $CmdLine[6] <> "" Then $Line6 = StringReplace($CmdLine[6], "''", '"')
If $CmdLine[0] > 6 And $CmdLine[7] <> "" Then $Line7 = StringReplace($CmdLine[7], "''", '"')
; ======================= Дополнение ===========================================
; Тут задаем замены
; _Add("ЧТО ИСКАТЬ", "ЧЕМ ЗАМЕНЯТЬ")
; и формируем в библиотеки
; ====== Библиотека ПОИСКА И ЗАМЕН №1 (ничего не меняется) =====================
if $CmdLine[1] = 1 Then
_Add($Line6,$Line7)
Endif
; ==============================================================================
; ====== Библиотека ПОИСКА И ЗАМЕН №2 (обычные пути меняются на переменные окружения) ====
if $CmdLine[1] = 2 Then
_Add(EnvGet("COMMANDER_PATH"), "%COMMANDER_PATH%") ; X:\.\.\Total Commander
_Add(EnvGet("PUBLIC"), "%PUBLIC%") ; X:\Users\Public
_Add(EnvGet("WINDIR"), "%WINDIR%") ; X:\Windows
_Add(EnvGet("TEMP"), "%TEMP%") ; X:\Users\86A9~1\AppData\Local\Temp
_Add(EnvGet("APPDATA"), "%APPDATA%") ; X:\Users\Пользователь\AppData\Roaming
_Add(EnvGet("USERPROFILE"), "%USERPROFILE%") ; X:\Users\Пользователь
_Add(EnvGet("ALLUSERSPROFILE"),"%ALLUSERSPROFILE%") ; X:\ProgramData
_Add(EnvGet("LOCALAPPDATA"), "%LOCALAPPDATA%") ; X:\Users\Пользователь\AppData\Local
_Add(EnvGet("PROGRAMFILES"), "%PROGRAMFILES%") ; X:\Program Files
_Add(EnvGet("COMMONPROGRAMFILES"), "%COMMONPROGRAMFILES%"); X:\Program Files\Common Files
_Add($Line6,$Line7)
Endif
; =============================================================================
; ======= Библиотека ПОИСКА И ЗАМЕН №3 (из пути вначале удаляются переменные) =======
if $CmdLine[1] = 3 Then
_Add(EnvGet("COMMANDER_PATH") & "\", "")
_Add(EnvGet("WINDIR") & "\", "")
_Add(EnvGet("PROGRAMFILES") & "\", "")
_Add($Line6,$Line7)
Endif
; =============================================================================
; ====== Библиотека ПОИСКА И ЗАМЕН №4 (Замена пути на %a - директория AkelPad'а) =======
if $CmdLine[1] = 4 Then
_Add(EnvGet("COMMANDER_PATH"), "%a")
_Add(EnvGet("PUBLIC"), "%PUBLIC%") ; X:\Users\Public
_Add(EnvGet("WINDIR"), "%WINDIR%") ; X:\Windows
_Add(EnvGet("TEMP"), "%TEMP%") ; X:\Users\86A9~1\AppData\Local\Temp
_Add(EnvGet("APPDATA"), "%APPDATA%") ; X:\Users\Пользователь\AppData\Roaming
_Add(EnvGet("USERPROFILE"), "%USERPROFILE%") ; X:\Users\Пользователь
_Add(EnvGet("ALLUSERSPROFILE"),"%ALLUSERSPROFILE%") ; X:\ProgramData
_Add(EnvGet("LOCALAPPDATA"), "%LOCALAPPDATA%") ; X:\Users\Пользователь\AppData\Local
_Add(EnvGet("PROGRAMFILES"), "%PROGRAMFILES%") ; X:\Program Files
_Add(EnvGet("COMMONPROGRAMFILES"), "%COMMONPROGRAMFILES%"); X:\Program Files\Common Files
_Add($Line6,$Line7)
Endif
; =============================================================================
; ====== Библиотека ПОИСКА И ЗАМЕН №5 (ВАША БИБЛИОТЕКА) =======================
if $CmdLine[1] = 5 Then
_Add($Line6,$Line7); это условие не меняется, а далее можете прописывать любые условия
_Add("ЧТО ИСКАТЬ_1", "ЧЕМ ЗАМЕНЯТЬ_1")
_Add("ЧТО ИСКАТЬ_2", "ЧЕМ ЗАМЕНЯТЬ_2")
_Add("ЧТО ИСКАТЬ_3", "ЧЕМ ЗАМЕНЯТЬ_3")
Endif
; =============================================================================
$aList = _TCHLoadFileList($CmdLine[2])
; Проверим, нет ли в наших путях заданных строк из библиотеки поиска и замен
For $i = 1 To $aList[0]
$sTemp = $aList[$i]
For $j = 1 To $aSubst[0][0]
$sTemp = StringReplace($sTemp, $aSubst[$j][0], $aSubst[$j][1])
Next
if $CmdLine[0] > 2 Then
$k = 3
$LineCentr = _StringLine($sTemp)
Endif
if $CmdLine[0] > 7 Then
$k = 8
$LeftEdgeCentr = _StringLine($sTemp)
Endif
if $CmdLine[0] > 8 Then
$k = 9
$RightEdgeCentr = _StringLine($sTemp)
Endif
If $CmdLine[0] >3 Then $InsertTextLeft = StringReplace($CmdLine[4], "''", '"')
If $CmdLine[0] >4 Then $InsertTextRight = StringReplace($CmdLine[5], "''", '"')
If $CmdLine[0] >9 Then $InsertEdgeTextLeft = StringReplace($CmdLine[10], "''", '"')
If $CmdLine[0] >10 Then $InsertEdgeTextRight = StringReplace($CmdLine[11], "''", '"')
$sResult &= $InsertEdgeTextLeft & $LeftEdgeCentr & $InsertTextLeft & $LineCentr & _
$InsertTextRight & $RightEdgeCentr & $InsertEdgeTextRight & @CRLF
Next
; Уберем лишний перенос строки и скопируем в буфер
ClipPut(StringTrimRight($sResult, 2))
Func _Add($sSubst, $sReplace = Default)
$aSubst[0][0] += 1
ReDim $aSubst[$aSubst[0][0]+1][2]
$aSubst[$aSubst[0][0]][0] = $sSubst
$aSubst[$aSubst[0][0]][1] = $sReplace
EndFunc
; Загрузитесь, чтобы выстроить список файлов, полученных с %L или %l TC
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
; Функция реверса строки (нужно для некоторых строчных операций)
Func _StringReverse($s_String)
Local $i_len = StringLen($s_String)
If $i_len < 1 Then Return SetError(1, 0, "")
Local $t_chars = DllStructCreate("char[" & $i_len + 1 & "]")
DllStructSetData($t_chars, 1, $s_String)
Local $a_rev = DllCall("msvcrt.dll", "ptr:cdecl", "_strrev", "ptr", DllStructGetPtr($t_chars))
If @error Or $a_rev[0] = 0 Then Return SetError(2, 0, "")
Return DllStructGetData($t_chars, 1)
EndFunc ;==>_StringReverse
; Функция преобразования полного пути в различные формы
Func _StringLine($sTLine)
if StringInStr($sTLine,"\",1,-1) = StringLen($sTLine) Then $sTLine = StringReplace(StringLeft($sTLine, StringLen($sTLine) - 1), ".", ">>>")
If $CmdLine[$k] = "" Then $sTLine = ""
If $CmdLine[$k] = 2 or $CmdLine[$k] = 3 Then $sTLine = _StringReverse(StringLeft(_StringReverse($sTLine), StringInStr(_StringReverse($sTLine), ".", 1, 1) - 1))
If $CmdLine[$k] = 4 or $CmdLine[$k] = 5 Then $sTLine = StringMid($sTLine, StringInStr($sTLine, "\", 1, -1) + 1, StringInStr(_StringReverse($sTLine),"\", 1, 1) - StringInStr(_StringReverse($sTLine), ".", 1, 1) - 1)
If $CmdLine[$k] = 6 or $CmdLine[$k] = 7 Then $sTLine = StringRight($sTLine, StringLen($sTLine) - StringInStr($sTLine,"\",1,-1))
If $CmdLine[$k] = 8 or $CmdLine[$k] = 9 Then $sTLine = StringLeft($sTLine, StringLen($sTLine) - StringInStr(_StringReverse($sTLine), ".", 1, 1))
If $CmdLine[$k] = 10 or $CmdLine[$k] = 11 Then $sTLine = StringLeft($sTLine, StringInStr($sTLine, "\", 1, -1) - 1)
If $CmdLine[$k] = 12 or $CmdLine[$k] = 13 Then $sTLine = StringLeft(StringLeft($sTLine, StringInStr(StringLeft($sTLine, StringInStr($sTLine, "\", 1, -1) - 1), "\", 1, -1) - 1), StringInStr($sTLine, "\", 1, -1) - 1)
If $CmdLine[$k] = 14 or $CmdLine[$k] = 15 Then $sTLine = StringRight($sTLine, StringLen($sTLine) - StringInStr($sTLine, "\", 1, 1))
If $CmdLine[$k] = 16 or $CmdLine[$k] = 17 Then $sTLine = StringRight($sTLine, StringLen(StringRight($sTLine, StringLen($sTLine) - StringInStr($sTLine, "\",1 , 1))) - StringInStr(StringRight($sTLine, StringLen($sTLine) - StringInStr($sTLine, "\", 1, 1)), "\", 1, 1))
If $CmdLine[$k] = 20 or $CmdLine[$k] = 21 Then $sTLine = FileGetShortName($sTLine)
If $CmdLine[$k] = 22 or $CmdLine[$k] = 23 Then $sTLine = StringRight(FileGetShortName($sTLine), StringLen(FileGetShortName($sTLine)) - StringInStr(FileGetShortName($sTLine), "\", 1, -1))
If $CmdLine[0] > 1 And Mod($CmdLine[$k],2) > 0 Then $sTLine = '"' & $sTLine & '"'
$sTLine = StringReplace($sTLine, ">>>", ".")
Return $sTLine
EndFuncСообщение отредактировал Andrey_A 9 марта 2012 - 01:17Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 03:35 / #12 -
BufferGo.vbs
Помещает в буфер обмена заданный текст' BufferGo.vbs
'================== Описание ==============================
' Помещает в буфер обмена заданный текст
'================= Параметры ==============================
' Параметр: "Любой Текст"
'================== Примеры ==============================
' %E - помещает в буфер расширение
' "file:///%p%N" - создаёт ссылки на файлы
' "Привет" - отсылает в буфер "Привет"
' Автор: Аверин Андрей
' Версия: 1.1 (2010 - 27.10.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'============== Изменяемые пути ============================
NirCmd = "%COMMANDER_PATH%\NirCmd.exe"
'===========================================================
If WScript.Arguments.Count > 0 Then
With CreateObject("Scripting.FileSystemObject")
Tmp = .GetSpecialFolder(2) & "\" & .GetTempName()
.CreateTextFile(Tmp, True).Write WScript.Arguments(0)
NirCmd = CreateObject("WScript.Shell").ExpandEnvironmentStrings(NirCmd)
CreateObject("WScript.Shell").Run Chr(34) & NirCmd & Chr(34) & " " & "clipboard readfile " & Tmp , 2,True
WScript.Sleep 1000 : .DeleteFile Tmp
End With
End IfСообщение отредактировал Andrey_A 9 марта 2012 - 01:18Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 03:38 / #13 -
Buffer_N.vbs
Создание текстового файла с содержимым буфера обмена или именем из буфера обмена' Buffer_N.vbs
'======================== Описание ========================================
' Создание текстового файла с содержимым буфера обмена или именем из буфера обмена
' (если в папке есть уже фал с таким именем, то создаётся файл ИМЯ_N)
'======================== Параметры ========================================
' 1-й параметр: создаваемый файл
' - если в параметре есть >>>>, то создаётся файл с именем из буфера
' 2-й параметр: минимальное количество цифр номера добавляемое к имени, если таковое уже есть в панели
' - без параметра будет добавляться: имя_1, имя_2, _3, _4
' - при 2 - имя_01, имя_02, _03, _04
' - при 3 - имя_001, имя_002 .....
' 3-й параметр: разделитель
' 4-й параметр: путь\к\программе в которой откроется файл после создания
' "%p%N" файл создаётся в активной панели
' %p\Buffer.vbs 2 файл создаётся в активной панели + номер в виде _0N
' "%p%N" 2 создание файла с именем файла под курсором ...
' "%p%O.txt" 2 создание текстового файла с именем файла под курсором ...
' "%pRead_Me_%N.txt" 2
' "%p>>>>.txt" создать пустой txt файл с именем из буфера
' "%p>>>>.vbs" 2 создать пустой vbs файл с именем из буфера
' "%p%O.txt" 1 ""
' "%p\WhatIsIt.txt" "1" "" "%%COMMANDER_PATH%%\Programs\Text\Texter2\Texter2.exe"
' основан на коде Batya
' Автор: Аверин Андрей
' Версия: 1.6 (27.10.2010 - 25.02.2012)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'===========================================================================
Option Explicit
'====== Изменяемые параметры ===============================================
Const IsQuestion = False 'Запрос на создание True
'===========================================================================
Dim FSO, WSH, Mess, FileName, Rank, Clip, NewPath, Title, lDlm
Title = "Создание текстового файла"
FileName = WScript.Arguments(0)
If WScript.Arguments.Count > 1 Then
Rank = WScript.Arguments(1)
Else
Rank = 1
End If
If WScript.Arguments.Count > 2 Then
lDlm = WScript.Arguments(2)
Else
lDlm = "_"
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
If Mid(FileName,Len(FileName),1) = "\" Then FileName = FileName & "FileBuffer.txt"
If Len(Clip) = 0 Or IsNull(Clip) Then Quit
If InStr(FileName, ">>>>") > 0 Then
FileName = Replace(FileName, ">>>>", Trim(Clip)) : Clip = ""
End If
NewPath = NextName(WSH.ExpandEnvironmentStrings(FileName))
If IsQuestion Then
Mess = "Буфер обмена содержит текст. Создать файл" & vbNewLine &_
"""" & NewPath & """" & vbNewLine & "с содержимым буфера обмена?" & vbNewLine
If MsgBox(Mess, vbYesNo + vbQuestion, Title) = 7 Then Quit
End If
On Error Resume Next
FSO.OpenTextFile(NewPath, 2, True).Write Clip
If Err.Number > 0 Then
MsgBox "В буфере содержится некорректный текст" & vbNewLine &_
"для создания имени файла", vbOKOnly & vbInformation, Title
Quit
End If
If WScript.Arguments.Count > 3 Then WSH.Exec(WScript.Arguments(3) & Chr(32) & NewPath)
WSH.Exec("%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMC.exe 100 CM540")
Quit
Sub Quit : Set WSH = Nothing : Set FSO = Nothing : WScript.Quit : End Sub
Function NextName(pFilePath)
Dim lPath, lName, lExt, li, lNum, lNewPath
lExt = FSO.GetExtensionName(pFilePath)
If lExt = "" Then pFilePath = pFilePath & ".txt"
lPath = FSO.GetParentFolderName(pFilePath)
lName = FSO.GetBaseName(pFilePath)
If lName = "" Then pFilePath = lPath & lName & lDlm & "\1." & lExt
If Len(lPath) > 0 Then lPath = lPath & "\"
If Not FSO.FileExists(pFilePath) Then
NextName = pFilePath
Exit Function
End If
Do
li = li + 1
If li < 10^Rank Then
lNum = Right(String(Rank, "0") & li, Rank)
Else
lNum = li
End If
lNewPath = lPath & lName & lDlm & lNum & "." & lExt
Loop While FSO.FileExists(lNewPath)
NextName = lNewPath
End FunctionСообщение отредактировал Andrey_A 9 марта 2012 - 01:18Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 03:41 / #14 -
BuferMusicArtist.au3
Отправить в буфер полные\короткие имя артистов выделенных музыкальных треков; BuferMusicArtist.au3
; ======================== Описание ===========================================
; Отправить в буфер полные\короткие имя артистов выделенных музыкальных треков
; ======================== Параметры ===========================================
; {Имя\Список файлов} {0\1}
; %L 0 - полное имя
; %L 1 - короткие имена
;
; Автор: Аверин Андрей
; Версия: 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)
$sText = ""
$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
if $CmdLine[2] = 1 Then
if StringInStr($sTemp, " " ,1 , 1) > 0 Then $sTemp = StringLeft($sTemp, StringInStr(StringUpper($sTemp), " " , 1, 1) - 1)
Endif
$sText = $sText & $sTemp & @CRLF
Endif
Endif
$sTemp = ""
Next
ClipPut(StringTrimRight($sText, 2)); отправить в буфер
; Загрузка списка, чтобы выстроить список файлов, полученных
; с параметров %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 9 марта 2012 - 01:18Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 03:44 / #15 -
BigFilesCopyInBigFolders.vbs
Копирование любого количества файлов и папок в любое количество папок' BigFilesCopyInBigFolders.vbs
'======================== Описание =====================================
' Копирование любого количества файлов и папок в любое количество папок.
' В параметры %L
'==================== Как работает скрипт ================================
' 1. Выделяем объекты (файлы, папки) "что копировать", жмем кнопку.
' 2. Далее выделяем папки "куда копировать", жмем кнопку.
' Если при выделении папок "куда копировать" ничего не выделено,
' скрипт прекращает работу. Или если при выделении папок
' "куда копировать" выделены файлы, то они игнорируются.
' Автор: jehaz & Аверин Андрей
' Версия: 1.1 (16.08.2007 - 28.10.2011)
' Site: http://tc-image.3dn.ru
'========================================================================
Option Explicit
Dim Tempdir, PathTempFile, FolderList, FileList, MsgFoldersStr, MsgFileText, MsgFolders
Dim Argument, MsgFoldersText, StrFolder, StrFiles, CopyFileName, MsgFileStr
Dim Lenstr, LastChar, Result, TextStreamFL, TextStream
With CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count>0 Then
Argument = WScript.Arguments(0)
Tempdir = CreateObject("WScript.Shell").Environment("Process")("TEMP")
PathTempFile = Tempdir & "\FileListTemp.txt"
If .FileExists(PathTempFile) then
Set FolderList = .GetFile(Argument) : Set FileList = .GetFile(PathTempFile)
Set TextStream = FolderList.OpenAsTextStream(1)
MsgFoldersStr = vbNullString : MsgFoldersText = vbNullString
While Not TextStream.AtEndOfStream
MsgFoldersStr = TextStream.ReadLine()
If .FolderExists(MsgFoldersStr) Then MsgFoldersText = MsgFoldersText & MsgFoldersStr & vbCrLf
Wend
TextStream.Close
Set MsgFileStr = FileList.OpenAsTextStream(1)
MsgFileText = MsgFileStr.ReadAll()
If MsgFoldersText <> "" then
Result = MsgBox("Будем копировать?" & vbCrLf & "объекты:"_
& vbCrLf & MsgFileText & vbCrLf & "в папки:" & vbCrLf & _
MsgFoldersText, vbYesNo+vbQuestion, "Внимание!")
Else
MsgBox "Не выделены папки для для копирования!!! " & vbCrLf & _
"Временные файлы удалены! " & vbCrLf & "Работа скрипта завершена! "_
, vbExclamation,"Отмена!!! "
End If
MsgFileStr.Close
If Result = 6 Then
Set TextStream = FolderList.OpenAsTextStream(1) : StrFolder = vbNullString
While Not TextStream.AtEndOfStream
StrFolder = TextStream.ReadLine()
Set TextStreamFL = FileList.OpenAsTextStream(1) : StrFiles = vbNullString
While Not TextStreamFL.AtEndOfStream
StrFiles = TextStreamFL.ReadLine()
If .FolderExists(StrFolder) Then CreateObject("Shell.Application").NameSpace(StrFolder).CopyHere StrFiles, 20
Wend
TextStreamFL.Close
Wend
TextStream.Close
MsgBox "Копирование удачно выполнено!!! ",vbExclamation,"Скопировано! "
End If
.DeleteFile PathTempFile, 0
Else
.GetFile(Argument).Copy Tempdir & "\FileListTemp.txt"
MsgBox " Создан список выделенных файлов\папок для копирования!" & vbNewLine &_
"Теперь перейдите в другую панель и выделите папки," & vbNewLine &_
"в которые необходимо скопировать выделенное и ещё раз нажмите кнопку ", _
vbExclamation ,"Копирование выделенного в группу выделенных папок "
End If
End If
End With
Set TextStreamFL = Nothing : Set MsgFileStr = Nothing : Set TextStream = Nothing
Set FolderList = Nothing : Set FileList = Nothing : WScript.QuitСообщение отредактировал Andrey_A 9 марта 2012 - 01:19Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 07:42 / #16 -
CopyAllBak.vbs
Создание бэкапа выделенных файлов\папок' CopyAllBak.vbs
'================ Описание =================
' Создание бэкапа выделенных файлов\папок
' Параметры: {файл-список}
' %L
' Автор: Аверин Андрей
' Версия: 1.0 (25.09.2010)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'=============================================
Option Explicit
Dim ListFile, SelFile
If WScript.Arguments.Count > 0 Then
With CreateObject("Scripting.FileSystemObject")
Set ListFile = .OpenTextFile(WScript.Arguments(0), 1)
Do While Not ListFile.AtEndOfStream
SelFile = ListFile.ReadLine
If .FileExists(SelFile) Then
.CopyFile SelFile, SelFile & ".bak"
Else
If Right(SelFile, 1) = "\" Then SelFile = Left(SelFile, Len(SelFile) - 1)
.CopyFolder SelFile, SelFile & ".bak"
End if
Loop
End With
ListFile.Close : Set ListFile = Nothing
Else
MsgBox "Не заданы параметры!" & vbNewLine &_
"Должен быть ОДИН параметр: %L",_
vbOKOnly + vbInformation, "Создание бэкапа выделенных файлов\папок"
End If
WScript.QuitСообщение отредактировал Andrey_A 9 марта 2012 - 01:19Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 07:46 / #17 -
CopyAllInPanelN.vbs
Копирование выделенных файлов\папок в ту же панель с добавлением счётчика' CopyAllInPanelN.vbs
'======================== Описание =====================================
' Копирование выделенных файлов\папок в ту же панель с добавлением счётчика
'======================= Параметры =====================================
' 1-й параметр: файл-список
' 2-й параметр: минимальное количество цифр номера добавляемое к имени, если таковое уже есть в панели
' - без параметра будет добавляться: имя_1, имя_2, _3, _4
' - при 2 - имя_01, имя_02, _03, _04
' - при 3 - имя_001, имя_002 .....
'======================== Примеры =====================================
' %L
' %L 2
' Автор: Аверин Андрей
' Версия: 1.1 (2010 - 28.10.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'======================================================================
Option Explicit
Dim ListFile, SelFile, Name, Ext, Path, FPath, Rank, Delim, n, Num
If WScript.Arguments.Count = 0 Then
MsgBox "Не заданы параметры!" & vbNewLine &_
"Должен быть минимум ОДИН параметр: %L",_
vbOKOnly + vbInformation, "Копирование файлов\папок со счётчиком"
WScript.Quit
End If
If WScript.Arguments.Count > 1 Then
Rank = WScript.Arguments(1)
Else
Rank = 1
End If
Delim = "_" ' если не нужен замените на Delim = ""
With CreateObject("Scripting.FileSystemObject")
Set ListFile = .OpenTextFile(WScript.Arguments(0), 1)
Do While Not ListFile.AtEndOfStream
SelFile = ListFile.ReadLine
Path = .GetParentFolderName(SelFile) & "\"
Name = .GetBaseName(SelFile)
Ext = .GetExtensionName(SelFile)
FPath = Path
Do
n = n + 1
If n < 10^Rank Then
Num = Right(String(Rank, "0") & n, Rank)
Else
Num = n
End If
FPath = Path & Name & Delim & Num & "." & Ext
Loop While (.FileExists(FPath) Or .FolderExists(FPath))
If .FileExists(SelFile) Then .CopyFile SelFile, FPath
If .FolderExists(SelFile) Then .CopyFolder Left(SelFile, Len(SelFile) - 1), FPath
Loop
End With
ListFile.Close : Set ListFile = Nothing : WScript.QuitСообщение отредактировал Andrey_A 9 марта 2012 - 01:20Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 07:47 / #18 -
CopyDubleDate.vbs
Копирование выделенных файлов\папок в текущий каталог с добавлением текущей даты' CopyDubleDate.vbs
'======================== Описание =====================================
' Копирование выделенных файлов\папок в текущий каталог с добавлением текущей даты
' Параметр %L
' Автор: Аверин Андрей
' Версия: 1.1 (2010 - 29.10.2011)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru
'========================================================================
Option Explicit
Dim List, F, Cnt
If WScript.Arguments.Count = 0 Then
MsgBox "Не заданы параметры!" & vbNewLine &_
"Должен быть минимум ОДИН параметр %L",_
vbOKOnly + vbInformation, "Копирование с добавлением даты"
WScript.Quit
End If
With CreateObject("Scripting.FileSystemObject")
List = .OpenTextFile(WScript.Arguments(0), 1, False).ReadAll
For Each F In Split(List, vbNewLine)
If .FileExists(F) Then
.CopyFile F, .GetFile(F).ParentFolder.Path & "\" &_
.GetBaseName(F) & " " & DateTime & "." & .GetExtensionName(F)
End If
If .FolderExists(F) Then
.CopyFolder Left(F, Len(F) - 1), Left(F, Len(F) - 1) & Chr(32) & DateTime
End If
Next
End With
WScript.Quit
Function DateTime
Dim YY, MM, DD, H, M, S
YY = Year(date) : MM = Month(date) : DD = Day(date)
H = Hour(time) : M = Minute(time) : S = Second(time)
DateTime = "[" & Right("0" & YY, 2) & "." & Right("0" & MM, 2) & "." & Right("0" & DD, 2) &_
" - " & Right("0" & H, 2) & "." & Right("0" & M, 2) & "." & Right("0" & S, 2) & "]"
End FunctionСообщение отредактировал Andrey_A 9 марта 2012 - 01:21Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 08:04 / #19 -
CopyFilesSkobaN.vbs
Создает копию выделенных файлов\папок, добавляя к имени порядковый номер в скобках (идентично TC)' CopyFilesSkobaN.vbs
'================================================================
' Создает копию выделенных файлов\папок, добавляя к имени порядковый номер
' в скобках (идентично TC). Если в имени уже присутствует порядковый номер в скобках,
' то увеличивает нумерацию до появления незанятого номера.
' Параметры %L
' Автор: jehaz & Аверин Андрей
' Версия: 1.2 (17.08.2007 - 29.10.2011)
' Site: http://tc-image.3dn.ru
'================================================================
Option Explicit
Dim FSO, FileList, FileStr, FullName, Counter
Dim FileName, Ext, Count, BetSkoba, OpenSkoba, BefSkoba, BetSkobaInt, TextStream
If WScript.Arguments.Count < 1 Then
MsgBox "Неправильно указано количество параметров!" & vbNewLine &_
"Должен быть минимум ОДИН параметр %L", _
vbOKOnly & vbInformation, "Копирование файлов\папок с добавлением (N)"
WScript.Quit
End If
Set FSO = CreateObject("Scripting.FilesystemObject")
Set FileList = FSO.GetFile(WScript.Arguments(0))
Set TextStream = FileList.OpenAsTextStream(1)
FileStr = vbNullString
While Not TextStream.AtEndOfStream
FileStr = TextStream.ReadLine()
Counter = 1 : FileName = FSO.GetBaseName(FileStr) : Count = Len(FileName)
Do
If Mid(FileName, Len(FileName),1) = ")" Then
Do While Count <> 0
If Mid(FileName, Count,1) = "(" Then
OpenSkoba = Count
BetSkoba = Mid(FileName, OpenSkoba + 1, Len(FileName) - Count-1)
BefSkoba = Mid(FileName, 1, OpenSkoba - 1) : Count = 0
Else
Count = Count - 1
End If
Loop
On Error Resume Next
BetSkobaInt = FormatNumber(BetSkoba, 0)
If Err.Number = 0 Then
If BetSkoba - BetSkobaInt = 0 Then FileName = BefSkoba : Counter = Counter + BetSkobaInt - 1
End If
End If
Count = 0 : Counter = Counter + 1 : Ext = FSO.GetExtensionName(FileStr)
FullName = FSO.GetParentFolderName(FileStr) & "\" & FileName & "(" & Counter & ")"
If Ext <> "" Then FullName = FullName & "." & Ext
Loop until Not (FSO.FileExists(FullName) Or FSO.FolderExists(FullName))
If FSO.FileExists(FileStr) Then FSO.CopyFile FileStr, FullName
If FSO.FolderExists(FileStr) Then FSO.CopyFolder Left(FileStr, Len(FileStr) - 1), FullName
Wend
Set TextStream = Nothing : Set FileList = Nothing : Set FSO = Nothing : WScript.QuitСообщение отредактировал Andrey_A 9 марта 2012 - 01:21Читайте: Справочные материалы по работе c TC + Онлайн справка TC
23 ноября 2011 - 09:04 / #20
Статистика форума, пользователей онлайн: 0 (за последние 30 минут)
---
- Создано тем
- 107
- Всего сообщений
- 4048
- Пользователей
- 99000
- Новый участник
- termojader
Powered by Bullet Energy Forum

