Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Script Request
Goto page Previous  1, 2, 3 ... 19, 20, 21 ... 40, 41, 42  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Serge Yolkin



Joined: 25 Jul 2009
Posts: 664

Post (Separately) Posted: Wed Oct 27, 2010 13:11    Post subject: Reply with quote

Avada
Спасибо, не надо. Кажется TCCP вполне подошел. Да, и кажется, "не в то окно" ? Smile
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10415
Location: Россия, Саратов

Post (Separately) Posted: Wed Oct 27, 2010 13:19    Post subject: Reply with quote

Serge Yolkin
Да, не в ту тему попало. Исправил.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Apr 15, 2011 18:58    Post subject: Reply with quote

Надоело постоянно отключать фильтр по Ctrl+F10, решил написать скрипт:
Code:
' Переключение между двумя фильтрами
' Параметры: %P%N %T%M %X%P%N %T%M%Z ">Имя_Шаблона1" ">Имя_Шаблона2" "em_ИмяКоманды1" "em_ИмяКоманды2"
' Необходима регистрация "Script helper ActiveX for TC"
' Автор - Flasher ©
'=================================
With CreateObject("TCScript.Helper")
 If WScript.Arguments(0)=WScript.Arguments(1) Then
 WScript.Quit
  ElseIf WScript.Arguments(0)=WScript.Arguments(2) And _
   .INIRead(.MainINI, "left", "userspec")=WScript.Arguments(4) Or _
   WScript.Arguments(0)=WScript.Arguments(3) And _
   .INIRead(.MainINI, "right", "userspec")=WScript.Arguments(4) Then
   .UserCmd WScript.Arguments(7)
  ElseIf WScript.Arguments(0)=WScript.Arguments(2) And _
   .INIRead(.MainINI, "left", "userspec")=WScript.Arguments(5) Or _
   WScript.Arguments(0)=WScript.Arguments(3) And _
   .INIRead(.MainINI, "right", "userspec")=WScript.Arguments(5) Then
   .UserCmd WScript.Arguments(6)
 Else
  WScript.Quit
 End If
End With
Скрипт требует наличия двух созданных пользовательских команд, в каждой из которых прописано имя шаблона следующим образом: cd >Имя_шаблона
Таким образом вы можете, например, по одной кнопке/клавише включать/отключать заданный фильтр, предварительно создав команду отключения. Делается это просто: в диалоге поиска в поле "Искать файлы" пишем: *.* , переходим на вкладку /Шаблоны/ и жмём кнопку [Сохранить], пишем подходящее имя "Все файлы" - ОК. Потом в параметрах кнопки/команды вместо Имя_Шаблона2 пишем Все файлы, а вместо ИмяКоманды2, например, SrcAllFiles. Соответственно, в команде em_SrcAllFiles в поле "Команда" должно быть прописано: cd >Все файлы. По этой же аналогии разбираемся с реверсивной командой и шаблоном.
Естественно, параметры позволяют переключаться и между 2-мя любыми другими шаблонами фильтров.
Back to top
View user's profile Send private message
redds



Joined: 18 May 2011
Posts: 1

Post (Separately) Posted: Wed May 18, 2011 19:03    Post subject: Reply with quote

есть ли скрипт на ТС чтобы при разрыве связи при заливке на фтп, связь восстанавливалась без моего вмешательства и продолжалась закачка?

 !  CaptainFlint:
Нарушение п. 9 правил. Сообщение перенесено из ветки Windows Script Host.
Back to top
View user's profile Send private message
BezDNaU



Joined: 31 May 2008
Posts: 65

Post (Separately) Posted: Mon Jun 20, 2011 17:46    Post subject: Reply with quote

Есть такая команда: fsutil file createnew <имя файла, включая путь к нему> <размер в байтах> - она создает файл определенного размера в определенном месте.
Собственно вопрос: в противоположной панели создать копии выделенных файлов, заполненые нулями с размерами = исходным.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Tue Jun 21, 2011 01:07    Post subject: Reply with quote

BezDNaU
Используй этот скрипт, где вместо
Code:
    WSH.Run "fsutil file createnew """ & Target & FSO.GetFile(Selected).Name & """ 0", 7, True
пишем
Code:
    WSH.Run "fsutil file createnew """ & Target & FSO.GetFile(Selected).Name & """ " & FSO.GetFile(Selected).Size, 7, True

а вместо
Code:
    WSH.Run "fsutil file createnew """ & Tar & FSO.GetFile(f).Name & """ 0", 7, True
пишем
Code:
    WSH.Run "fsutil file createnew """ & Tar & FSO.GetFile(f).Name & """ " & FSO.GetFile(f).Size, 7, True

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
BezDNaU



Joined: 31 May 2008
Posts: 65

Post (Separately) Posted: Tue Jun 21, 2011 09:20    Post subject: Reply with quote

Спасибо большое, работает!
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Jun 27, 2011 16:00    Post subject: Reply with quote

Code:
'===========================================
' Перемещение выделенных файлов и папок на уровень вверх
' с переходом в родительский каталог активной папки
' Параметры: %L <любой символ>
' второй параметр необязательный - если стоит, то переходить
'===========================================
With CreateObject("Scripting.FileSystemObject")
Set TempFile = .OpenTextFile(WScript.Arguments(0), 1)
Do While Not TempFile.AtEndOfStream
  N = TempFile.ReadLine
  If .FolderExists(N) Then
    Set F = .GetFolder(N)
    TargetPath = F.ParentFolder.ParentFolder
    If Not .FolderExists(TargetPath & "\" & .GetFolder(N).Name) Then
      .MoveFolder F, TargetPath & "\"
    Else
      F.Copy TargetPath & "\" & .GetFolder(N).Name & "_Copy"
      F.Delete
    End If
  End If
  If .FileExists(N) Then
    Set F = .GetFile(N)
    TargetPath = F.ParentFolder.ParentFolder
    If Not .FileExists(TargetPath & "\" & F.Name) Then
      .MoveFile F, TargetPath & "\"
    Else
      F.Copy TargetPath & "\" & .GetBaseName(N) &"_Copy." & .GetExtensionName(N)
      F.Delete
    End If
  End If
Loop
End With
If WScript.Arguments.Count>1 Then _
CreateObject("WScript.Shell").Exec("%COMMANDER_PATH%\Totalcmd.exe /O /S /L=""" & TargetPath & """")
Wscript.Quit
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Jun 29, 2011 06:09    Post subject: Reply with quote

Code:
'===========================================
' Перемещение содержимого выделенных папок в каталог
' активной панели с их последующим удалением
' Параметры: %L
'===========================================
With CreateObject("Scripting.FileSystemObject")
Set TempFile = .OpenTextFile(WScript.Arguments(0), 1)
Do While Not TempFile.AtEndOfStream
   N = TempFile.ReadLine
   If .FolderExists(N) Then
      Set FF = .GetFolder(N)
      For Each F In FF.SubFolders
        PD = F.ParentFolder.ParentFolder
        If Not .FolderExists(PD & "\" & F.Name) Then
          .MoveFolder F, PD & "\"
        Else
          F.Copy PD & "\" & F.Name & "_Copy"
          F.Delete
        End If
      Next
      For Each F In FF.Files
        PD = F.ParentFolder.ParentFolder
        If Not .FileExists(PD & "\" & F.Name) Then
         .MoveFile F, PD & "\"
        Else
          F.Copy PD & "\" & .GetBaseName(F) &"_Copy." & .GetExtensionName(F)
          F.Delete
        End If
      Next
      If FF.Size = 0 Then FF.Delete
   End If
Loop
End With
Wscript.Quit
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Jul 20, 2011 02:37    Post subject: Reply with quote

Иногда для просмотра DVD-фильмов/обучалок необходимо по-быстрому смонтировать папку, полученную, например, с торрент-трекера, на диск. Несколько месяцев назад сделать себе такой скрипт. Выложу, может, кому пригодится:
Code:
' Смонтировать папку под курсором на виртуальный диск
' Параметры: %V
'=====================================
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(WScript.Arguments(0)) Then
  Drives=Array("D:","E:","F:","G:","H:","I:","J:","K:","L:","M:", "N:","O:","P:","Q:","R:","S:","T:","U:","V:","W:","X:","Y:","Z:")
  Set Dict = CreateObject("Scripting.Dictionary")
  For Each Drive In FSO.Drives
    Dict.Add Trim(Drive), ""
  Next
  Set FSO = Nothing
  For Each D in Drives
    If Not Dict.Exists(D) Then
      CreateObject("WScript.Shell").Run "subst " & D & " """ & WScript.Arguments(0) & """", 0, True
      Set Dict = Nothing
      WScript.Quit
    End If
  Next
End If
Ну, и впридачу:
Code:
' Отмонтировать все папки
'========================
For Each D In CreateObject("Scripting.FileSystemObject").Drives
  CreateObject("WScript.Shell").Run "subst /d" & " " & D, 0, True
Next
WScript.Quit
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Fri Jul 22, 2011 16:02    Post subject: Reply with quote

А как в этом скрипте
Code:
'===========================================
' Перемещение выделенных файлов и папок на уровень вверх
' с переходом в родительский каталог активной папки
' Параметры: %L <любой символ>
' второй параметр необязательный - если стоит, то переходить
'===========================================
Осуществить Перемещение выделенных файлов и папок на противоположную панель (естественно без дополнительных окон-подтверждения и вопросов)?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Jul 22, 2011 16:14    Post subject: Reply with quote

Code:
TargetPath = F.ParentFolder.ParentFolder
в двух местах заменить на
Code:
TargetPath = WScript.Arguments(1)
Вторым параметром прописать "%T".
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Fri Jul 22, 2011 16:36    Post subject: Reply with quote

Спасибо только этот совет подходит для второго скрипта
Code:
'===========================================
' Перемещение содержимого выделенных папок в каталог
' активной панели с их последующим удалением
' Параметры: %L
'===========================================
И при таком раскладе (%L "%T") совпадающие имена (файлов внутри папки) и (файлов снаружи папки) объединятся - то-есть если содержимое разное - то останется только один файл - а это не есть хорошо! А вобщем, интересует именно первый скрипт(Перемещение выделенных файлов и папок на противоположную панель с добавлением _copy при совпадении к имени (для папке и для файла)
в нем строки
Code:
PD = F.ParentFolder.ParentFolder
я не нашел.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Jul 22, 2011 16:44    Post subject: Reply with quote

shveicar
Внимательно см. как написано.
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Fri Jul 22, 2011 17:05    Post subject: Reply with quote

Спасибо разобрался, только осталась проблема автообновления исходной панели(из которой происходит перемещение) - она автоматом перескакивает в ту-же панель куда и происходит перемещение.(символы в кнопке при таком варианте -не действуют). Можно это как-то убрать?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 19, 20, 21 ... 40, 41, 42  Next
Page 20 of 42

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group