Автоматизация при копировании, как?

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Вот этот скрипт должен тебя устроить:

Код: Выделить всё

'=============================================================================
' Копирование с помощью TC содержимого одной папки в другую.
' В скрипте используется WSH Helper for TC by Volniy

' Должно быть 2 входных параметра:
'   1 - исходная папка (откуда копировать),
'   2 - целевая  папка (  куда копировать)
' Пример:
'   "C:\Из этой папки я копирую\" "C:\В эту папку я копирую\"
'=============================================================================
Option Explicit
' Проверяем число параметров
Dim Title
Title = "Копирование с помощью TC"
If WScript.Arguments.Count < 2 Then
  MsgBox "Неправильно заданы параметры!", _
    vbOKOnly + vbCritical, _
    Title
  WScript.Quit
End If

Dim FSO, SourceDir, TargetDir

Set FSO   = CreateObject("Scripting.FileSystemObject")
SourceDir = WScript.Arguments(0)
TargetDir = WScript.Arguments(1)

If Not FSO.FolderExists(SourceDir) Then
  MsgBox "Неправильно задана исходная папка!", _
    vbOKOnly + vbCritical, _
    Title
  Set FSO = Nothing
  WScript.Quit
End If

If Not FSO.FolderExists(TargetDir) Then
  MsgBox "Неправильно задана целевая папка!", _
    vbOKOnly + vbCritical, _
    Title
  Set FSO = Nothing
  WScript.Quit
End If

Dim TCS, WSH, TC, SaveSrcDir, SaveTrgDir

Set TCS = CreateObject("TCScript.Helper")
Set WSH = CreateObject("WScript.Shell")

TCS.LockTC True
TC = TCS.TCPath & "\TOTALCMD.EXE"
SaveSrcDir = TCS.GetSrcPath
SaveTrgDir = TCS.GetTrgPath

' Открываем в противоположной панели TC целевую папку
WSH.Run TC & " /o /s /r=""" & TargetDir & """", 7, True
' Небольшая пауза
WScript.Sleep 100
' Открываем в активной панели TC исходную папку
WSH.Run TC & " /o /s /l=""" & SourceDir & """", 7, True
' Небольшая пауза
WScript.Sleep 100
' Выделяем все
TCS.SendCommand "cm_SelectAllBoth"
' Ставим в очередь на копирование
TCS.SendCommand "cm_Copy"
TCS.SendKeystroke "{F2}"
' Небольшая пауза
WScript.Sleep 100
' Открываем в противоположной панели TC прежнюю папку
WSH.Run TC & " /o /s /r=""" & SaveTrgDir & """", 7, True 
' Небольшая пауза 
WScript.Sleep 100 
' Открываем в активной панели TC прежнюю папку
WSH.Run TC & " /o /s /l=""" & SaveSrcDir & """", 7, True

TCS.LockTC False

Set FSO = Nothing
Set TCS = Nothing
Set WSH = Nothing
WScript.Quit
Только, как говорится, "Вы используете данную программу на свой страх и риск" :)
Нет, я не сплю. Я просто медленно моргаю.
Ответить