Приветствую Вас Гость | Сегодня: 23.11.2024, Суббота | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Скрипты
Andrey_AДата: Среда, 12.10.2011, 21:18 | Сообщение # 1
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Тестирование скриптов




Скрипты - уникальный инструмент для достижения различных целей в работе с файлами и не только, особенно в файловом менеджере, даже если вы ничего раньше об этом ничего не слышали и не знали, то путём простых движений вы можете оптимизировать свои действия
Тема тестирования скриптов создана для увеличения функциональности Total Commander
Каждый может выложить свой скрипт написанный на любом языке: vbs, js, hta, au3,ahk, bat,cmd... главное, чтобы он относился как-то к Total Commander, можно было им воспользоваться и к нему было должное описание к применению.
Каждый может протестировать, дать свой комментарий и ...[move]если есть интересная идея, вы можете поделиться ей и заказать скрипт, а вдруг она покажется интересной для авторов...[/move]
Всё это делается для тех, кто хочет экономить время и автоматизировать работу
Огромное спасибо участникам, авторам и всем повлиявшим на тему











Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Суббота, 12.11.2011, 19:05 | Сообщение # 101
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Выделяет файлы "зеброй" в текущей в панели
Используется NirCmd.exe и TCMC.exe - файлы можете скачать в шапке темы

Code
' 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


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Суббота, 12.11.2011, 21:44 | Сообщение # 102
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Поиск кусков текста и замена

Code
; RepleceTextInFiles.au3
; ================   Описание   ===========================
; Поиск кусков текста и замена
; ===============   Параметры   ===========================
; 1-й параметр: %L
; 2-й параметр: Количество полей поиска, если = 0, открывается диалог выбора количества полей
; 3-й параметр: Высота одного поля поиска
; ================   Примеры   ===========================
; %L 0 100
; %L 2 100
; Автор:             Loopback
; Версия:          1.0 (06.10.2010)
; ======================================================
If $CmdLine[0] < 3 Then
     MsgBox (0, "", "Недостаточно параметров, должно быть 3.")
     Exit
EndIf

Global $gSrcCount = $CmdLine[2]
Global $gSrcHeight = $CmdLine[3]

Global $gClientHeight = @DesktopHeight - 30
$aTrayPos = WinGetPos("[CLASS:Shell_TrayWnd]")
If Not @error Then $gClientHeight = @DesktopHeight - $aTrayPos[3]

If $gSrcCount = 0 Then
     $gBtnCount = 9 ; Количество кнопок
     $nGUIWidth = 6 + $gBtnCount * 24 + $gBtnCount * 5
     GUICreate("Выбор числа полей поиска", $nGUIWidth, 34, @DesktopWidth/2 - $nGUIWidth/2, -1)
     For $i = 0 To $gBtnCount - 1
         GUICtrlCreateButton($i+1, 5 + $i*24 + $i*5, 5, 24, 24)
     Next
     GUISetState(@SW_SHOW)
     While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
           Case -3
             Exit
           Case 3 To $gBtnCount + 2
             $gSrcCount = $nMsg - 2
             If $gClientHeight < $gSrcHeight * $gSrcCount + 140 Then
                $gSrcHeight = Int(($gClientHeight - 140) / $gSrcCount)
             EndIf
             GUIDelete()
             ExitLoop
        EndSwitch
     Wend
EndIf

Global $aList  = _TCHLoadFileList($CmdLine[1])
Global $gReplaces = 0, $gMask, $gBackups = False
Global $gSrcEdit[$gSrcCount]
Global Const $GUI_CHECKED = 1

$nGUIHeight = $gSrcHeight * $gSrcCount + 109

$hGUI = GUICreate("Поиск и замена", 563, $nGUIHeight, -1, -1)
GUICtrlCreateLabel("Маска файлов", 8, 6, 78, 17)
$edMask = GUICtrlCreateInput("*.*", 8, 24, 265, 21)
GUICtrlCreateLabel("Текст для поиска", 8, 54, 94, 17)
GUICtrlCreateLabel("Текст для замены", 288, 54, 98, 17)

For $i = 0 To $gSrcCount - 1
     $gSrcEdit[$i] = GUICtrlCreateEdit("", 8, 72 + $gSrcHeight * $i, 265, $gSrcHeight)
Next

$edTrg = GUICtrlCreateEdit("", 288, 72, 265, $gSrcHeight * $gSrcCount)
$cbCaseSence = GUICtrlCreateCheckbox("Учитывать регистр", 8, $gSrcHeight * $gSrcCount + 84, 137, 17)
$cbBackups = GUICtrlCreateCheckbox("Создавать резервные копии", 150, $gSrcHeight * $gSrcCount + 84, 170, 17)
$btnOK = GUICtrlCreateButton("OK", 400, $gSrcHeight * $gSrcCount + 79, 75, 25)
$btnCancel = GUICtrlCreateButton("Отмена", 480, $gSrcHeight * $gSrcCount + 79, 75, 25)
Global $AccelTable[1][2] = [["^{ENTER}", $btnOK]]
GUISetAccelerators($AccelTable)

GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
       Case -3, $btnCancel
         Exit
       Case $btnOK
         $gMask = _MaskToRegexp(GUICtrlRead($edMask))
         $gBackups = BitAND(GUICtrlRead($cbBackups), $GUI_CHECKED)
         For $i = 1 To $aList[0]
             If StringRight($aList[$i], 1) = "\" Then
                 _DoFolder($aList[$i])
             Else
                 _DoFile($aList[$i])
             EndIf
         Next
         MsgBox (0, "", "Выполнено замен: " & $gReplaces, 0, $hGUI)
         Exit
    EndSwitch
WEnd

Func _DoFolder($sFolder)
     If $sFolder = "" Then Return
     Local $sDirs = ""
     Local $hSearch = FileFindFirstFile($sFolder & "*.*")
     If @error Then Return
     While 1
         $sFile = FileFindNextFile($hSearch)
         If @error Then ExitLoop
         If @extended Then
             $sDirs &= $sFolder & $sFile & "\" & @LF
             ContinueLoop
         EndIf
         _DoFile($sFolder & $sFile)
     Wend
     FileClose($hSearch)
     ; Обработку каталогов приходится делать отдельно,
     ; чтобы не оставлять открытый поисковый хэндл,
     ; их максимально может быть 64
     $aDirs = StringSplit($sDirs, @LF)
     For $i = 1 To $aDirs[0]
         _DoFolder($aDirs[$i])
     Next
EndFunc

Func _DoFile($sFile)
     If StringRegExp($sFile, $gMask) = 0 Then Return
     Local $sText = FileRead($sFile)
     Local $sSrc
     Local $nReplaces = 0
     For $i = 0 To $gSrcCount - 1
         $sSrc = GUICtrlRead($gSrcEdit[$i])
         If $sSrc = "" Then ContinueLoop
         $sText = StringReplace($sText, $sSrc, GUICtrlRead($edTrg), 0, _
                    BitAND(GUICtrlRead($cbCaseSence), $GUI_CHECKED))
         $nReplaces += @extended
     Next
     If $nReplaces = 0 Then Return
     $gReplaces += $nReplaces
     If $gBackups Then FileCopy($sFile, $sFile & ".bak", 1) ; бэкап
     Local $hFile = FileOpen($sFile, 2)
     FileWrite($hFile, $sText)
     FileClose($hFile)
EndFunc

Func _MaskToRegexp($sMask)
     $sMask = StringRegExpReplace($sMask, "(\\|\.|\+|\^|\(|\)|\[|\]|\{|\}|\$)", "\\\1")
     $sMask = StringReplace($sMask, "?", ".")
     $sMask = StringReplace($sMask, "*", ".+?")
     Return("(?i)" & $sMask & "$")
EndFunc

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


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Суббота, 12.11.2011, 22:06 | Сообщение # 103
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Добавление текста до/после/над/после строк в выделенных текстовых файлах

Code
; InsertText.au3
; ======================   Описание   =======================
; Добавление текста до/после/над/после строк в выделенных текстовых файлах
;; Параметры: %L

; Автор:             Loopback
; Версия:          1.0 (14.10.2010)
; ========================================================
If $CmdLine[0] < 1 Then
     MsgBox (0, "", "Недостаточно параметров, должно быть 1.")
     Exit
EndIf

Global $aList  = _TCHLoadFileList($CmdLine[1])
Global $gBackups = False, $gCaseSence = 0
Global Const $GUI_CHECKED = 1
Global $gRemoveEmpty = False
Global $gIniFile = StringLeft(@ScriptFullPath, StringInStr(@ScriptFullPath, ".", 0, -1)) & "ini"

$hGUI = GUICreate("Вставка текста", 549, 570, -1, -1)
$edTextLeft = GUICtrlCreateEdit("", 8, 96, 529, 73)
$btnOK = GUICtrlCreateButton("OK", 384, 528, 75, 25)
$btnCancel = GUICtrlCreateButton("Отмена", 464, 528, 75, 25)
GUICtrlCreateLabel("начинающейся на", 198, 70, 94, 17, 0x2)
$cbCaseSence = GUICtrlCreateCheckbox("Учитывать регистр", 8, 520, 137, 17)
$edMask = GUICtrlCreateInput("*.*", 8, 24, 265, 21)
GUICtrlCreateLabel("Маска файлов", 8, 6, 78, 17)
$edTextRight = GUICtrlCreateEdit("", 8, 208, 529, 73)
$edTextBefore = GUICtrlCreateEdit("", 8, 320, 529, 73)
$edTextAfter = GUICtrlCreateEdit("", 8, 432, 529, 73)
GUICtrlCreateLabel("заканчивающейся на", 176, 182, 113, 17, 0x2)
GUICtrlCreateLabel("начинающейся на", 196, 294, 95, 17, 0x2)
GUICtrlCreateLabel("заканчивающейся на", 176, 406, 113, 17, 0x2)
$ibFilterLeft = GUICtrlCreateInput("", 296, 66, 241, 21)
$ibFilterRight = GUICtrlCreateInput("", 296, 178, 241, 21)
$ibFilterBefore = GUICtrlCreateInput("", 296, 290, 241, 21)
$ibFilterAfter = GUICtrlCreateInput("", 296, 402, 241, 21)
GUICtrlCreateLabel("", 8, 56, 528, 2, 0x10)
GUIStartGroup()
$Radio1 = GUICtrlCreateRadio("Добавить к строке слева", 8, 69, 153, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetTip(-1, "Приоритет над п.3")
$Radio3 = GUICtrlCreateRadio("Добавить сверху строки", 8, 293, 153, 17)
GUICtrlSetTip(-1, "Приоритет над п.1")
GUIStartGroup()
$Radio2 = GUICtrlCreateRadio("Добавить к строке справа", 8, 181, 161, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetTip(-1, "Приоритет над п.4")
$Radio4 = GUICtrlCreateRadio("Добавить снизу строки", 8, 405, 153, 17)
GUICtrlSetTip(-1, "Приоритет над п.2")
$cbBackups = GUICtrlCreateCheckbox("Создавать резервные копии", 160, 520, 193, 17)
$cbRemoveEmpty = GUICtrlCreateCheckbox("Удалять пустые строки", 8, 544, 150, 17)
$cbCloseDone = GUICtrlCreateCheckbox("Закрывать по завершению", 160, 544, 160, 17)
Global $AccelTable[1][2] = [["^{ENTER}", $btnOK]]
GUISetAccelerators($AccelTable)

GUISetState(@SW_SHOW)

GUICtrlSetState($cbCaseSence,   IniRead($gIniFile, "Settings", "CaseSenseSearch", 4))
GUICtrlSetState($cbBackups,     IniRead($gIniFile, "Settings", "MakeBackups", 4))
GUICtrlSetState($cbRemoveEmpty, IniRead($gIniFile, "Settings", "RemoveEmptyLines", 4))
GUICtrlSetState($cbCloseDone,   IniRead($gIniFile, "Settings", "CloseWhenDone", 1))

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
       Case -3, $btnCancel
         Exit
       Case $btnOK
         $gMask = _MaskToRegexp(GUICtrlRead($edMask))
         $gBackups = BitAND(GUICtrlRead($cbBackups), $GUI_CHECKED)
         $gRemoveEmpty = BitAND(GUICtrlRead($cbRemoveEmpty), $GUI_CHECKED)
         If BitAND(GUICtrlRead($cbCaseSence), $GUI_CHECKED) Then $gCaseSence = 1
         WinSetState($hGUI, "", @SW_DISABLE)

         IniWrite($gIniFile, "Settings", "CaseSenseSearch",  GUICtrlRead($cbCaseSence))
         IniWrite($gIniFile, "Settings", "MakeBackups",      GUICtrlRead($cbBackups))
         IniWrite($gIniFile, "Settings", "RemoveEmptyLines", GUICtrlRead($cbRemoveEmpty))
         IniWrite($gIniFile, "Settings", "CloseWhenDone",    GUICtrlRead($cbCloseDone))

         For $i = 1 To $aList[0]
             If StringRight($aList[$i], 1) = "\" Then
                 _DoFolder($aList[$i])
             Else
                 _DoFile($aList[$i])
             EndIf
         Next
         MsgBox (0, "", "Завершено.", 0, $hGUI)
         If BitAND(GUICtrlRead($cbCloseDone), $GUI_CHECKED) Then Exit
         WinSetState($hGUI, "", @SW_ENABLE)
    EndSwitch
WEnd

Func _DoFolder($sFolder)
     If $sFolder = "" Then Return
     Local $sDirs = ""
     Local $hSearch = FileFindFirstFile($sFolder & "*.*")
     If @error Then Return
     While 1
         $sFile = FileFindNextFile($hSearch)
         If @error Then ExitLoop
         If @extended Then
             $sDirs &= $sFolder & $sFile & "\" & @LF
             ContinueLoop
         EndIf
         _DoFile($sFolder & $sFile)
     Wend
     FileClose($hSearch)
     ; Обработку каталогов приходится делать отдельно,
     ; чтобы не оставлять открытый поисковый хэндл,
     ; их максимально может быть 64
     $aDirs = StringSplit($sDirs, @LF)
     For $i = 1 To $aDirs[0]
         _DoFolder($aDirs[$i])
     Next
EndFunc

Func _ProcessLines(ByRef $aSrcFile, ByRef $aTrgFile, $sText, $sFilter, $nMode)
     If $sText = "" Then Return
     For $i = 1 To $aSrcFile[0]
         Switch $nMode
             Case 0, 2
                 If ($sFilter <> "") Then
                     $sLeft = StringLeft($aSrcFile[$i], StringLen($sFilter))
                     If $gCaseSence Then
                         If Not ($sLeft == $sFilter) Then ContinueLoop
                     Else
                         If $sLeft <> $sFilter Then ContinueLoop
                     EndIf
                 EndIf
                 If $nMode = 2 Then $aTrgFile[$i] = @CRLF & $aTrgFile[$i]
                 $aTrgFile[$i] = $sText & $aTrgFile[$i]
             Case 1, 3
                 If ($sFilter <> "") Then
                     $sRight = StringRight($aSrcFile[$i], StringLen($sFilter))
                     If $gCaseSence Then
                         If Not ($sRight == $sFilter) Then ContinueLoop
                     Else
                         If $sRight <> $sFilter Then ContinueLoop
                     EndIf
                 EndIf
                 If $nMode = 3 Then $aTrgFile[$i] = $aTrgFile[$i] & @CRLF
                 $aTrgFile[$i] = $aTrgFile[$i] & $sText
         EndSwitch
     Next
EndFunc

Func _DoFile($sFile)
     If StringRegExp(StringLower($sFile), $gMask) = 0 Then Return
     Local $aSrcFile = _TCHLoadFileList($sFile)
     If $gRemoveEmpty And ($aSrcFile[0] > 0) Then
         Local $aTrgFile[$aSrcFile[0]+1] = [0]
         For $i = 1 To $aSrcFile[0]
             If $aSrcFile[$i] <> "" Then
                 $aTrgFile[0] += 1
                 $aTrgFile[$aTrgFile[0]] = $aSrcFile[$i]
             EndIf
         Next
         ReDim $aTrgFile[$aTrgFile[0] + 1]
         $aSrcFile = $aTrgFile
     Else
         Local $aTrgFile = $aSrcFile
     EndIf

     If BitAND(GUICtrlRead($Radio1), $GUI_CHECKED) Then
         _ProcessLines($aSrcFile, $aTrgFile, GUICtrlRead($edTextLeft), GUICtrlRead($ibFilterLeft), 0)
         _ProcessLines($aSrcFile, $aTrgFile, GUICtrlRead($edTextbefore), GUICtrlRead($ibFilterBefore), 2)
     Else
         _ProcessLines($aSrcFile, $aTrgFile, GUICtrlRead($edTextbefore), GUICtrlRead($ibFilterBefore), 2)
         _ProcessLines($aSrcFile, $aTrgFile, GUICtrlRead($edTextLeft), GUICtrlRead($ibFilterLeft), 0)
     EndIf

     If BitAND(GUICtrlRead($Radio3), $GUI_CHECKED) Then
         _ProcessLines($aSrcFile, $aTrgFile, GUICtrlRead($edTextRight), GUICtrlRead($ibFilterRight), 1)
         _ProcessLines($aSrcFile, $aTrgFile, GUICtrlRead($edTextAfter), GUICtrlRead($ibFilterAfter), 3)
     Else
         _ProcessLines($aSrcFile, $aTrgFile, GUICtrlRead($edTextAfter), GUICtrlRead($ibFilterAfter), 3)
         _ProcessLines($aSrcFile, $aTrgFile, GUICtrlRead($edTextRight), GUICtrlRead($ibFilterRight), 1)
     EndIf

     If $gBackups Then FileCopy($sFile, $sFile & ".bak", 1) ; бэкап
     Local $hFile = FileOpen($sFile, 2)
     For $i = 1 To $aTrgFile[0]
         FileWriteLine($hFile, $aTrgFile[$i])
     Next
     FileClose($hFile)
EndFunc

Func _MaskToRegexp($sMask)
     $sMask = StringRegExpReplace($sMask, "(\\|\.|\+|\^|\(|\)|\[|\]|\{|\}|\$)", "\\\1")
     $sMask = StringReplace($sMask, "?", ".")
     $sMask = StringReplace($sMask, "*", ".+?")
     Return StringLower("(?i)" & $sMask & "$")
EndFunc

; fast list load function
Func _TCHLoadFileList($sFileName, $nIncBlock = 1000)
     Local $asList[$nIncBlock + 1] = [0]
     Local $hfList = FileOpen($sFileName, 0)
     Local $nCounter = 0
     While 1
         For $i = 1 To $nIncBlock
             $asList[$nCounter + $i] = FileReadLine($hfList)
             If @error Then
                 ReDim $asList[UBound($asList) + $i - $nIncBlock - 1]
                 ExitLoop(2)
             EndIf
         Next
         $nCounter += $nIncBlock
         ReDim $asList[UBound($asList)+$nIncBlock]
     Wend
     FileClose($hfList)
     $asList[0] = UBound($asList)-1
     Return $asList
EndFunc


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Суббота, 12.11.2011, 22:22 | Сообщение # 104
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Копирование из файлов XLS, XLSX строк, столбцов в текстовый файл

Code
; CopyXlsInText.au3
; ================   Описание   ===================================
; Копирование из файлов XLS, XLSX строк, столбцов в текстовый файл
; ================  Параметры ===================================
; В командной строке  должно быть прописано 7 - 11 параметров:
; - - - - - - - - - - - - - - - - - Обязательные - - - - - - - - - - - - - - - - - - - -
; 1) Номер листа с какого считывать информацию
; 2) С какой строки начать считывание
; 3) С какого столбца начать считывание
; 4) К-во считываемых рядов (строк) (0 - все)
; 5) К-во считываемых колонок (столбцов)
; 6) Путь\к\файлу.xls
; 7) Путь\к\сохранению\файла.txt
  ; (можно вводить пути с переменными окружения)
; - - - - - - - - - - - - - - - Дополнительные  - - - - - - - - - - - - - - - - - - - -
; 8) 1 = Удалять пустые строки   0 = оставить как есть
; 9) строка-вставка между колонками
; 10)  строка-вставка в начале строки
; 11)  строка-вставка в конце строки
; ================    Примеры    ===================================
; 1 2 0 4 "%%COMMANDER_PATH%%\Files\Lists\CreateMenu\WcmMenuImage.xlsx" "%%COMMANDER_PATH%%\Text.ini"
; 1 2 0 4 "%%COMMANDER_PATH%%\Files\Lists\CreateMenu\WcmMenuImage.xlsx" "%%COMMANDER_PATH%%\Text.ini" 1 "___" "| " " |"
; 1 1 1 0 0 %P%N "%T%O.txt" 1 "   "    Копирование первого листа из xls под курсором в текстовый файл в соседнюю панель
;
; Автор:             Аверин Андрей
; Версия:          1.0 (12.10.2010)
; Mail:                 Averin-And@yandex.ru
; Site:                  http://tc-image.3dn.ru
; ===============================================================
#include <Excel.au3>

If $CmdLine[0] < 7  Then
   MsgBox(16 + 262144, "Запись из табличного файла строк и столбцов в файл", _
   "Не хватает параметров!" & @CRLF & "Должно быть минимум СЕМЬ, а у вас" & _
   $CmdLine[0] & @CRLF & "Пропишите и повторите попытку!" & @CRLF & _
   "Подробную информацию читайте в коментариях скрипта", 10)
   Exit
Endif

$List = Number($CmdLine[1])
$StartRow = Number($CmdLine[2])
$StartCol = Number($CmdLine[3])
$RowCnt = Number($CmdLine[4])
$ColCnt = Number($CmdLine[5])
$XlsFile = _TCHExpandEnv($CmdLine[6])
$TxtFile = _TCHExpandEnv($CmdLine[7])

$Text = ""
$Insert = ""
$Control = ""
$Contr = 0
$InsertRight = ""
$InsertLeft = ""
if $CmdLine[0] > 7 Then $Contr = $CmdLine[8]
if $CmdLine[0] > 8 Then $Insert = $CmdLine[9]
if $CmdLine[0] > 9 Then $InsertRight = $CmdLine[10]
if $CmdLine[0] > 10 Then $InsertLeft = $CmdLine[11]

; Открываем xls , считываем нужные строки, колонки и закрываем
$oInFile = _ExcelBookOpen($XlsFile, 0, True)
; номер листа
$oInFile.Sheets($List).Select()

$aData = _ExcelReadSheetToArray($oInFile, $StartRow, $StartCol, $RowCnt , $ColCnt)
_ExcelBookClose($oInFile, 0)

if $RowCnt = 0 Then $RowCnt = UBound($aData,1) - 1 ;размерность массива (к-во строк)
if $ColCnt = 0 Then $ColCnt = UBound($aData,2) - 1 ;размерность массива (к-во колонок)

; Открываем выходной файл для записи - с очисткой
$hFile = FileOpen($TxtFile, 2)

; Записываем  данные
For $i=1 To $RowCnt
     For $j=1 To $ColCnt
        if $aData[$i][$j] = "" Then $aData[$i][$j] = ""
        $Text = $Text & StringFormat("%s", $aData[$i][$j]) & $Insert
        $Control = $Control & $Insert
     Next
     ; проверка на пустые строки
     if $Contr = 1 And StringCompare($Control, $Text,2) = 0 Then
     Else
        FileWriteLine($hFile, $InsertLeft & $Text & $InsertRight)
     Endif
     $Text = ""
     $Control = ""
Next

; функция разворачивания переменных окружения
Func _TCHExpandEnv($sText)
     $aResult = StringRegExp($sText, "%(\w+)%", 3)
     If IsArray($aResult) Then
         For $i = 0 To UBound($aResult)-1
             $sText = StringReplace($sText, "%" & $aResult[$i] & "%", EnvGet($aResult[$i]))
         Next
     EndIf
     Return $sText
EndFunc


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Воскресенье, 13.11.2011, 10:42 | Сообщение # 105
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Перемещение выделенных файлов\папок по заданному количеству в отдельные (создаваемые) папки

Code
' 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


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Воскресенье, 13.11.2011, 11:47 | Сообщение # 106
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Перемещение выделенных файлов каждый в отдельную именную папку

Code
' 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


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Воскресенье, 13.11.2011, 12:40 | Сообщение # 107
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Перемещение\Копирование выделенных файлов по Ассоциированным Папкам
Скопируйте эту ссылку и скачайте пример файла MoveFileInAssociationsFolders.txt

Code
' MoveFileInAssociationsFolders.vbs
'======================================================================
' Перемещение\Копирование выделенных файлов по Ассоциированным Папкам
' Ассоциированные папки и расширения считываются из файла
' Синтаксис файла:
' Папка=;расширение1;расширение2;
' Архивы=;7z;7zip;
' Музыка=;mp3;wal;
' т.е если в выделенных файлах будет встречен ...7zip, то он будет перемещён\скопирован в папку "Архивы"
'========================  Параметры ===================================
' 1-й параметр: Cписок файлов
' 2-й параметр: путь\где\будут\создаваться\папки
' 3-й параметр: путь\к\файлу_ассоциаций
'========================    Примеры    ===================================
' %L %t "%%COMMANDER_PATH%%\Scripts\Move\MoveFileInAssociationsFolders.txt"
'
' Автор:       Аверин Андрей
' Версия:    1.1 (24.12.2010 - 13.11.2011)
' Mail:           Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru
'======================================================================
Option Explicit
Dim File, List, Folder, Count, i, Path, ExtLines, Name, Ext

If WScript.Arguments.Count < 3 Then
     MsgBox "Не хватает параметров!" & vbNewLine &_
     "Должно быть ТРИ параметра!" & vbNewLine &_
     "%L %t ''Путь\к\MoveFileOnExt.txt''", vbOKOnly &_
     vbInformation, "Перемещение файлов по любимым папкам"
     Wscript.Quit
End if

With CreateObject("Scripting.FileSystemObject")
     Set List = .OpenTextFile(GetPath(WScript.Arguments(0)), 1)
     Path = WScript.Arguments(1)
     If Right(Path, 1) <> "\" Then Path = Path & "\"
     ExtLines = Split(.OpenTextFile(GetPath(WScript.Arguments(2)), 1).ReadAll, vbNewLine)

     Do While Not List.AtEndOfStream
       File = List.ReadLine
       Name = .GetBaseName(File) : Ext = .GetExtensionName(File)
       For i = 0 To Ubound(ExtLines)
         If InStr(1,ExtLines(i), ";" & Ext & ";") >  0 Then
          Folder = Mid(ExtLines(i),1,InStr(1,ExtLines(i), "=") - 1) :  i = Ubound(ExtLines)
          If Not .FolderExists(Path & Folder) Then .CreateFolder(Path & Folder)

          'раскомментируйте\закоментируйте строку, если хотите перемещатьфайлы (MoveFile)
          If .FileExists(File)   Then .MoveFile   File, Path & Folder & "\" & Name & "." & Ext
          'раскомментируйте\закоментируйте строку, если хотите копироватьфайлы (CopyFile)
          'If .FileExists(File)   Then .CopyFile   File, Path & Folder & "\" & Name & "." & Ext
         End if
       Next
     Loop
End With
List.Close : Set List = Nothing : Wscript.Quit

Function GetPath(pPath)
     GetPath = WScript.CreateObject("WScript.Shell").ExpandEnvironmentStrings(pPath)
End Function


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Воскресенье, 13.11.2011, 15:46 | Сообщение # 108
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Перемещение музыкальных файлов в папки c именами артистов

Code
;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


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Воскресенье, 13.11.2011, 18:16 | Сообщение # 109
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Отправить в буфер полные\короткие имя артистов выделенных музыкальных треков

Code
; 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


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Понедельник, 14.11.2011, 00:14 | Сообщение # 110
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Умное переименование составных имён файлов\папок
Скопировать ссылку и скачать файл RenameLongName.txt

Code
' RenameLongName.vbs
'========================   Описание   =====================================
' Умное переименование выделенных составных имён файлов
' Файл replaceintextfilesfromfilelist.vbs будет переименован в ReplaceInTextFilesFromFileList.vbs
'=======================   Параметры  =====================================
' 1-й параметр: список файлов
' 2-й параметр: файл со словами
' любой 3-й параметр означает, что будет произведено полное переименование
'========================   Примеры   =====================================
' %L "%%COMMANDER_PATH%%\Scripts\ReNames\RenameLongName.txt"
' %L "%%COMMANDER_PATH%%\Scripts\ReNames\RenameLongName.txt" 1

' Автор:             Аверин Андрей
' Версия:          1.0 (13.11.2011)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru

Set FSO = CreateObject("Scripting.FileSystemObject")
SelFiles = FSO.OpenTextFile(GetPath(WScript.Arguments(0)), 1).ReadAll
Spisok = Split((FSO.OpenTextFile(GetPath(WScript.Arguments(1)), 1)).ReadAll, vbNewLine)
If WScript.Arguments.Count > 2 Then SelFiles = LCase(SelFiles)
Text = SelFiles
For n = 0 To Ubound(Spisok)
   k = InStr(Spisok(n), "=")
   If Len(Spisok(n)) > 0 And k > 2 Then
     sLeft = Left(Spisok(n), k - 1) : UpLeft = UCase(Left(sLeft, 1)) & Mid(sLeft, 2)
     If InStr(Text, UpLeft) > 0 Then Text = Replace(Text, UpLeft, "[[" & n  & "]]")
     If InStr(Text, sLeft) > 0 Then Text = Replace(Text, sLeft, "[[" & n  & "]]")
   End If
Next

For n = 0 To Ubound(Spisok)
   nm = "[[" & n  & "]]"
   If InStr(Text, nm) > 0 Then
     sRight = Mid(Spisok(n), InStr(Spisok(n), "=") + 1) : Text = Replace(Text, nm, sRight)
   End If
Next

If ListFile <> Text Then
   basList = Split(SelFiles, vbNewLine)
   corList = Split(Text, vbNewLine)
   For n = 0 To Ubound(basList)
     If basList(n) <> corList(n) Then
       File = corList(n)
       File = FSO.GetParentFolderName(File) & "\" & FSO.GetBaseName(File) &_
                  "." & LCase(FSO.GetExtensionName(File))
       On Error Resume Next
       FSO.MoveFile basList(n), File
     End If
   Next
End If

Set FSO = Nothing : WScript.Quit
Function GetPath(pPath)
   GetPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings(pPath)
End Function


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Понедельник, 14.11.2011, 10:27 | Сообщение # 111
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Назначение папке иконки из файла, т.е. создание файла Desktop.ini в этой папке

Code
' IconOnFolders.vbs
'========================   Описание   =====================================
' Назначение папке иконки из файла, т.е. создание файла Desktop.ini в этой папке
' В диалоге вводится номер значка библиотеки
'========================  Параметры =====================================
' 1-й параметр: Папка, которой будет назначен значок
' 2-й параметр: Библиотека, значок
' Любой третий параметр не вызовет диалог ввода номера значка
'========================   Примеры   =====================================
' "%P\" %P%N  - Назначение папке значка из файла под курсором
' %P%N %T%M - Назначение папке значка из файла соседней панели
' %P%N "%%COMMANDER_PATH%%\Wcmicons.dll" Назначение папке значка из файла Wcmicons.dll
' "%P\" ""%N"" 1  - Назначение папке значка из файла под курсором без пути (без диалога)

' Автор:             Аверин Андрей
' Версия:          1.2 (2010 - 21.10.2011)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru
'========================================================================
Titles = "Назначение значка папке - Создание Desktop.ini "
With WScript
   Cnt = .Arguments.Count
   If Cnt = 0 Then .Quit  
   Number = 0 : TargetDir = .Arguments(0) : IconFile  = .Arguments(1)
   If Cnt < 3 Then
     Number = InputBox("Введите номер значка в библиотеке," & vbNewLine &_
     "(по-умолчанию номер = 0)",Titles , "0")
     If Len(Number) = 0 Then  .Quit
   End If
End With

Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(TargetDir) Then
   If Right(TargetDir, 1) <> "\" Then TargetDir = TargetDir & "\"
Else
   MsgBox "Не задано корректное имя папки!", vbOKOnly + vbExclamation, Titles : WsEnd
End If

TrFile = TargetDir & "Desktop.ini"
If FSO.FileExists(TrFile) Then FSO.DeleteFile(TrFile)

'Создадим Desktop.ini
With FSO.CreateTextFile(TrFile, True)
   .WriteLine "[.ShellClassInfo]"
   .WriteLine "IconFile=" & IconFile
   .WriteLine "IconIndex=" & Number
   .WriteLine "IconResource=" & IconFile & "," & Number
   .Close
End With

With FSO.GetFile(TrFile) .Attributes = .Attributes Or 38 End With
With FSO.GetFolder(TargetDir) .Attributes = .Attributes Or 1 End With
WsEnd
Sub WsEnd : Set FSO = Nothing : WScript.Quit : End Sub


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Понедельник, 14.11.2011, 12:21 | Сообщение # 112
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Запуск программ, скриптов, батников со СКОЛЬКО УГОДНО параметрами из файл списка ПО ОЧЕРЕДИ

Code
' RunProgramParam.vbs
'========================   Описание   ========================================
' Запуск программ, скриптов, батников со СКОЛЬКО УГОДНО параметрами из файл списка ПО ОЧЕРЕДИ
'=======================  Дополнение ========================================
' Программа и параметры в файл списке обрамить в квадратные скобки [ ] [ ]
' Пример:
' [%COMMANDER_PATH%\Utilities\Scripting\AutoIt\AutoIt3.exe] [%COMMANDER_PATH%\Scripts\TextWork\CopyXlsInText.au3] [2] [1] [2] [0] [1] [%COMMANDER_PATH%\Files\Lists\CreateMenu\WcmMenuImage.xlsx] [%COMMANDER_PATH%\LANGUAGE\Wcmd_Rus.ini] [1]
' [%COMMANDER_PATH%\Files\Bat\CopyTcFilesFromTc.bat] [%COMMANDER_PATH%\Files\Bat\]
'========================  Параметры ========================================
' В параметрах вызова должно быть прописано: {путь к файл списку}
' Пример:  "%%COMMANDER_PATH%%\Files\Lists\CreateMenu\RunWcmMenu.txt"
'
' Автор:             Аверин Андрей
' Версия:          1.1 (2010)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru
'=========================================================================
Option Explicit
Dim WSH, ListFile, SelFile, Program, Param, FF, Data, i, Line, PData
Set WSH = CreateObject("WScript.Shell")

FF = GetPath(WScript.Arguments(0))
Set ListFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(FF, 1)

Do While Not ListFile.AtEndOfStream
   SelFile = ListFile.ReadLine
   SelFile = Mid(SelFile, 2, Len(SelFile) - 2)
   Data = Split(SelFile, "] [")

   For i = 0 To Ubound(Data)
     If Mid(Data(i), 1, 1) = "%" Then
       PData = GetPath(Data(i))
     Else
       PData = Data(i)
     End if
     If Right(Data(i), 1) = "\" Then PData = PData & "\"
     Line = Line & PData & Chr(34) & Chr(32) & Chr(34)
   Next

   WSH.Run Chr(34) & Line & Chr(34), 2, True
   Line = ""
Loop

ListFile.Close : Set ListFile = Nothing : Set WSH = Nothing : WScript.Quit
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function


Пример Файл Списка программ, скриптов, батников... с параметрами. Скрипт по очереди запустит каждую, указанную команду

Code
[%COMMANDER_PATH%\Utilities\Scripting\AutoIt\AutoIt3.exe] [%COMMANDER_PATH%\Scripts\TextWork\CopyXlsInText.au3] [2] [1] [2] [0] [1] [%COMMANDER_PATH%\Files\Lists\CreateMenu\WcmMenuImage.xlsx] [%COMMANDER_PATH%\LANGUAGE\Wcmd_Rus.ini] [1]
[%COMMANDER_PATH%\Utilities\Scripting\AutoIt\AutoIt3.exe] [%COMMANDER_PATH%\Scripts\TextWork\CopyXlsInText.au3] [1] [1] [2] [0] [4] [%COMMANDER_PATH%\Files\Lists\CreateMenu\WcmMenuImage.xlsx] [%COMMANDER_PATH%\WCMICONS.inc] [1]
[%COMMANDER_PATH%\Utilities\Scripting\AutoIt\AutoIt3.exe] [%COMMANDER_PATH%\Scripts\TextWork\CopyXlsInText.au3] [1] [1] [6] [0] [1] [%COMMANDER_PATH%\Files\Lists\CreateMenu\WcmMenuImage.xlsx] [%COMMANDER_PATH%\LANGUAGE\Wcmd_Rus.mnu]
[%COMMANDER_PATH%\Scripts\ImageWSH\CleareWcmdRusIni.vbs] [%COMMANDER_PATH%\LANGUAGE\Wcmd_Rus.ini]
[%COMMANDER_PATH%\Files\Bat\CopyTcFilesFromTc.bat] [%COMMANDER_PATH%\Files\Bat\]
[%COMMANDER_PATH%\Scripts\ImageWSH\SumWincmd.vbs]
[%COMMANDER_PATH%\Scripts\CreateLists\CreateFileAllCmdTC.vbs]
[%COMMANDER_PATH%\Scripts\CreateLists\CreateFilesAllCmdTC.vbs]


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Понедельник, 14.11.2011, 14:55 | Сообщение # 113
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431

Переименование имён выделенных файлов по маске [P] [заданное слово] [C]


Code
' RenameDifferentCounter.vbs
'========================   Описание   =====================================
' Переименование имён выделенных файлов по маске [P] [заданное слово] [C]
'   [P] - имя родительской папки,
'   [С] - отдельный счетчик для каждой папки. Если вы испрользовали cm_DirBranch
'=======================   Параметры  =====================================
' 1-й параметр: список файлов
' 2-й параметр: заданное слово, если "?", то без вставляемого слово
' 3-й параметр: разделитель между [P] [заданное слово] [C], если "?", то без разделителя
'      если 2 и 3-й параметр пусты их можно ввести в диалоге
' 4-й параметр: разделитель, означает, что перед именем будетет добавлено
'      имя "дедушкиной" папки + этот разделитель (маска [G] [P] [заданное слово] [C])
'========================   Примеры   =====================================
' %L
' %L "Name" "_"
' %L "?"
' %L "?" "?"
' %L "?" " - "
' %L "?" "_" "_"
' Автор:             Batya & Аверин Андрей
' Версия:          1.2 (2009 - 14.11.2011)
' Site:                  http://tc-image.3dn.ru
'========================================================================
Option Explicit
'========== Изменяемые параметры ========================================
Const Precision = 4  ' Разрядность счетчика в маске
'========================================================================
Dim Mess, FSO, FileList, F, P, PF, G, Ext, NewName, NewPath, gWord, Delim, Cnt
Dim Errors, Counter
SetMess
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Errors = CreateObject("Scripting.Dictionary")
Set Counter = CreateObject("Scripting.Dictionary")
With WScript
   Cnt = .Arguments.Count
   If Cnt = 0 Then
     MessBox Mess(1), 1 : Quit
   End If
   FileList  = .Arguments(0)
   If Not FSO.FileExists(FileList) Then
     MessBox Mess(2), 1  : Quit
   End If
   If Cnt < 2 Then
     gWord = InputBox("Переименование выделенных файлов из" & vbNewLine &_
                    "разных папок по маске [P] [ваше СЛОВО] [C]" & vbNewLine &_
                    "[P] - имя родительской папки," & vbNewLine &_
                    "[С] - отдельный счетчик для каждого [P]" & vbNewLine &_
                    "Вы можете ввести желаемое СЛОВО," & vbNewLine &_
                    "для отображении его в имени (? - без слова)", Mess(0), "?")
     If Len(gWord) = 0 Then Quit
   Else
     gWord = .Arguments(1)
   End If
     If Cnt < 3 Then
     Delim = InputBox("Вы можете задать разделитель между словами" & vbNewLine &_
                    "(если ввести ? разделителя не будет", Mess(0), "_")
     If Len(Delim) = 0 Then Quit
   Else
     Delim = .Arguments(2)
   End If
   If Delim = "?" Then Delim = ""
   If gWord = "?" Then
     gWord = ""
   Else
     gWord = gWord + Delim
   End If
End With

For Each F In Split(FSO.OpenTextFile(FileList, 1, False).ReadAll, vbNewLine)
   F = Trim(F)
   If F <> "" Then
     If FSO.FileExists(F) Then
       Ext = "." & FSO.GetExtensionName(F)
       PF = FSO.GetParentFolderName(F)
       P = FSO.GetBaseName(PF)
       If Cnt > 3 Then
         G = FSO.GetBaseName(FSO.GetParentFolderName(PF)) & WScript.Arguments(3)
       Else
         G = ""
       End If
       If Not Counter.Exists(PF) Then
         Counter.Add PF, 1
       Else
         Counter(PF) = Counter(PF) + 1
       End If
       NewName = G & P & Delim & gWord & Num(Counter(PF), Precision) & Ext
       NewPath = PF & "\" & NewName
       On Error Resume Next
       FSO.MoveFile F, NewPath
       If Err.Number > 0 Then Errors.Add F & "  ->  " & NewName, vbNewLine & Err.Description
       On Error GoTo 0
     End If
   End If
Next

If Errors.Count > 0 Then
   MessBox JoinErr(Errors), 2
Else
   MessBox Mess(3), 3
End If
Quit

Function Num(pC, pPrecision)
   Num = Right(String(pPrecision, "0") & pC, pPrecision)
End Function

Sub SetMess
   Set Mess = CreateObject("Scripting.Dictionary")
   Mess.Add 0,  "Переименование по маске"
   Mess.Add 1,  "Не указаны параметры!"
   Mess.Add 2,  "Входной параметр не является файлом!"
   Mess.Add 3,  "Операция завершена."
   Mess.Add 4,  "Операция завершена с ошибками." & vbNewLine
   Mess.Add 5,  "Невозможно выполнить переименование:" & vbNewLine
End Sub

Function JoinErr(pDic)
   Dim lKey
   For Each lKey In pDic
     JoinErr = JoinErr & vbNewLine & vbNewLine & Mess(5) & lKey & pDic(lKey)
   Next
   JoinErr = Mess(4) & JoinErr
End Function

Function MessBox(pMess, pMode)
   Dim lIcon
   Select Case pMode
     Case 1 lIcon = vbCritical + vbOKOnly
     Case 2 lIcon = vbExclamation + vbOKOnly
     Case 3 lIcon = vbInformation + vbOKOnly
   End Select
   MessBox = MsgBox(pMess, lIcon, Mess(0))
End Function

Sub Quit
   Set Counter = Nothing : Set Errors = Nothing : Set FSO = Nothing : Wscript.Quit
End Sub


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Понедельник, 14.11.2011, 15:48 | Сообщение # 114
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Перемещение файлов и папок без запроса

Code
; 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


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Вторник, 15.11.2011, 00:07 | Сообщение # 115
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Создание НУЖНОГО количества каталогов с именем текущей даты
Используется TCMC.exe - файл можете скачать в шапке темы

Code
' BigDateNameFolder.vbs
'========================   Описание   =====================================
' Создание НУЖНОГО количества каталогов с именем текущей даты [29.09.2010 -  10.25.33]
'=======================   Параметры  =====================================
' 1-й параметр: путь\где\создавать\каталоги
' 2-й параметр: имя перед датой
' 3-й параметр: количество создаваемых каталогов
'========================   Примеры   =====================================
' %p             - Создать в текущей папке каталоги с Датой, количество вводится в диалоге
' %p "%O " - Создать в текущей папке каталоги с именем под курсором + Дата, количество вводится в диалоге
' %p "" 10   - Создать в текущей папке 10 каталогов с Датой, количество вводится в диалоге
' %p "Моя папка " 100
'
' Автор:             Аверин Андрей
' Версия:          1.1 (08.08.2010 - 30.10.2011)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru
'============================================================================
With WScript
   Cnt = .Arguments.Count
   If Cnt < 1 Then
     MsgBox "Неправильно указано количество параметров!" & vbNewLine &_
     "Должен быть Один параметр %p", vbOKOnly & vbInformation, "Создание каталогов"
     .Quit
   End If

   Path = .Arguments(0)
   If Cnt > 1 Then
     Insert = .Arguments(1)
     If Cnt > 2 Then Count = .Arguments(2)
   End If

   If Len(Count) = 0 Then
     Count = InputBox("Введите нужное КОЛИЧЕСТВО создаваемых каталогов именем сегодняшней даты" &_
     vbNewLine & "(по умолчанию число создаваемых каталогов равно 2)", "Создание каталогов ", 2)
     If Len(Count) = 0 Then .Quit
   End If

End With

YY = Year(Date) : MM = Month(Date) : DD = Day(Date) : H = Hour(Time) : M = Minute(Time) : S = Second(Time)

For i = 1 To Count
   FoldTime = "[" & Right("0" & YY, 2)  & "." & Right("0" & MM, 2)  & "." & Right("0" & DD, 2)  &_
                         " - " & Right("0" & H, 2)  & "." & Right("0" & M, 2)  & "." & Right("0" & S, 2)  & "]"
   Call CreateObject("Scripting.FileSystemObject").CreateFolder(Path & Insert & FoldTime)
   S = S + 1
   if S = 60 Then
       S = 0 : M = M + 1
       If M = 60 Then
           M = 0 : H = H + 1
           if H = 23 Then
               H = 0 : DD = DD + 1
               If DD = 31 And MM = 1 Then MM = MM + 1
               If DD = 31 And MM = 3 Then MM = MM + 1
               If DD = 31 And MM = 5 Then MM = MM + 1
               If DD = 31 And MM = 7 Then MM = MM + 1
               If DD = 31 And MM = 8 Then MM = MM + 1
               If DD = 31 And MM = 10 Then MM = MM + 1
               If DD = 31 And MM = 12 Then MM = 1 : YY = YY + 1 End If
               If DD = 30 And MM = 4 Then MM = MM + 1
               If DD = 30 And MM = 6 Then MM = MM + 1
               If DD = 30 And MM = 9 Then MM = MM + 1
               If DD = 30 And MM = 11 Then MM = MM + 1
               If DD = 28 And MM = 2 Then
                 If YY/4 <> Atn(YY/4) Then MM = MM + 1
               End If
               If DD = 29 And MM = 2 Then MM = MM + 1
           End if
       End If
   End if
Next

CreateObject("WScript.Shell").Exec("%COMMANDER_PATH%\Utilities\TotalCom\TCMC\TCMC.exe 100 CM540")
Wscript.Quit


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
volodia_kДата: Четверг, 17.11.2011, 22:04 | Сообщение # 116
Генерал-лейтенант
Зареген: 28.05.2010
Всего сообщений: 387
Andrey_A, Спасибо за данную тему.
Очень информативно и много.
Буду разбираться и учится работать с .vbs и autoit - давно было желание, но времени и нужной инфы для быстрого старта собрать не удавалось.
Еще раз спасибо! GOOD
Награды: 15 Сборщик пака дополнительных программ для Total Commander PowerUser! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!
Пользователь из города: Almaty
Andrey_AДата: Воскресенье, 20.11.2011, 12:37 | Сообщение # 117
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Выделение элементов с заданными интервалами и условием
Используется NirCmd.exe и TCMC.exe - файлы можете скачать в шапке темы

Code
' 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


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Воскресенье, 20.11.2011, 13:01 | Сообщение # 118
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
volodia_k, Спасибо за поддержку темы! Тема мне и самому нравится!
Появится скорость инета - выложу ряд справок для тех кто хочет научится и любит читать
Появится время надо подсобрать хорошие ссылки сайтов, где подобные вопросы рассматриваются
В общем будем развиваться.


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
Andrey_AДата: Понедельник, 21.11.2011, 03:01 | Сообщение # 119
Сборщик TC Image
Зареген: 04.08.2011
Всего сообщений: 431
Добавление имён выделенных файлов в список исключений TC с активацией фильтра
Используется TCFS2.exe - файл можете скачать в шапке темы

Code
' 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


Читайте: Справочные материалы по работе c TC + Онлайн справка TC
Награды: 16 Сборщик Total Commander Image! За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!
Пользователь из города: Сочи, Хоста
satukДата: Понедельник, 21.11.2011, 19:29 | Сообщение # 120
Генерал-полковник
Зареген: 05.01.2011
Всего сообщений: 765
Andrey_A, пользуюсь кнопкой. Очень удобно.
Code

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\scripts\Buffer_N.vbs
"%p%O.txt"
%COMMANDER_PATH%\install\Icons\ICONS_V8S.ico,39
Создать  txt-файл с содержимым буфера обмена, с именем под курсором
%COMMANDER_PATH%\scripts\

-1

Возможно ли создавать тестовый файл с именем из буфера?


Награды: 10 За 100 Сообщений!За 200 Сообщений!!!За 300 Сообщений!!!За 400 Сообщений!!!За 500 Сообщений!!!
Пользователь из города: Киев
Поиск:

Copyright by Grey © 2024 Хостинг от uCoz

Гость