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 

Скрипт, использующий "загрузку имен из файла"

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Georgе



Joined: 28 Aug 2007
Posts: 99

Post (Separately) Posted: Thu Sep 13, 2007 23:16    Post subject: Скрипт, использующий "загрузку имен из файла" Reply with quote

Помогите,пожалуйста, написать скрипт, который бы делал следующее:
я устанавливаю в панелях исходную и целевую папки, нажимаю кнопочку, и файлы из одной папки переписываются поверх файлов того же размера из другой, но не под своими именами, а под именами перезаписанных. (нужно мне это для поддержки чужих закачек в торренте).
Предполагаю, что решать это надо с привлечением группового переименования и имеющегося там пункта "загрузки имен из файла".
Back to top
View user's profile Send private message
Georgе



Joined: 28 Aug 2007
Posts: 99

Post (Separately) Posted: Tue Sep 25, 2007 03:58    Post subject: Reply with quote

Подъем темы (в связи с падением форума).
Back to top
View user's profile Send private message
LocKtaR-o-DarK



Joined: 12 Aug 2005
Posts: 349
Location: Москва

Post (Separately) Posted: Tue Sep 25, 2007 05:53    Post subject: Reply with quote

Georgе, конкретизируй задачу, приведи примеры файлов, может что-нить и придет в голову, а так описание задачи немного расплывчато
_________________
        
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Tue Sep 25, 2007 10:59    Post subject: Reply with quote

Georgе
При совпадении размера файлов содержимое отличается?
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Georgе



Joined: 28 Aug 2007
Posts: 99

Post (Separately) Posted: Tue Sep 25, 2007 15:15    Post subject: Reply with quote

Batya В целевой директории содержимое файлов полностью или частично нули. (так поступает торрент-клиент, кладет на диск "болванки" будущих файлов, забитые нулями).

LocKtaR-o-DarK Возможные случаи когда это может пригодиться - mp3,iso,архивы. Просто iso ввиду малочисленности можно и руками переименовать, а вот медиа-файлы, разбросанные по разным папкам,переименовывать руками уже сложно, нужен скрипт.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Thu Sep 27, 2007 12:16    Post subject: Reply with quote

Батник с параметрами %P %T не пойдет?
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Georgе



Joined: 28 Aug 2007
Posts: 99

Post (Separately) Posted: Thu Sep 27, 2007 17:36    Post subject: Reply with quote

Думаю, не подойдёт. Как я могу указать такому батнику какой файл перезаписывать каким? Критерий - совпадающий размер. Но как его проверить в батнике ?
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Thu Sep 27, 2007 18:40    Post subject: Reply with quote

Georgе wrote:
Критерий - совпадающий размер.

А что если файлов с одинаковым размером будет несколько, хотя бы два? Что должен делать скрипт в этом случае? И, кроме этого, я так и не понял, у целевых файлов будут меняться имена в соответствии с именами файлов в панели-источнике или имена останутся прежними, а будет заменено тоьлко содержимое, взятое из файлов-источников Question

Согласен я с LocKtaR-o-DarK, привел бы ты лучше конкретный пример.
Back to top
View user's profile Send private message
Georgе



Joined: 28 Aug 2007
Posts: 99

Post (Separately) Posted: Thu Sep 27, 2007 19:33    Post subject: Reply with quote

Volniy wrote:
Georgе wrote:
Критерий - совпадающий размер.

А что если файлов с одинаковым размером будет несколько, хотя бы два? Что должен делать скрипт в этом случае?

Тогда скрипт перепишет один-два файла "неправомерно". Бог с ним, торрент-клиент распознает это при перехэшировании.

Пример: две папки с мп3. В целевой директории имена кириллицей, содержимое-нули. В исходной -имена латиницей, содержимое-нормальные мп3. Надо получить в целевой нормальные мп3 с теми же именами, что были у "зануленных", то есть кириллические. (Пример частный. Плагин-транслитератор не предлагать. Это могут быть просто имена с проверенной и непроверенной орфографией, и т.д.)
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Fri Dec 14, 2007 10:58    Post subject: Reply with quote

Georgе
vbs-скрипт:
Code:
'=============================================================================
' Замена содержимого файлов одной папки содержимым файлов другой папки
'   при совпадении у файлов размеров

' Должно быть 2 входных параметра - исходная папка (откуда копировать) и
'   целевая папка (куда копировать)
' Пример параметров в TC:
'   "%P" "%T"
'=============================================================================
Option Explicit
' Проверяем число параметров
If WScript.Arguments.Count < 2 Then
  MsgBox "Неправильно заданы параметры!", _
    vbOKOnly + vbCritical, _
    "Замена содержимого файлов"
  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, _
    "Замена содержимого файлов"
  Set FSO = Nothing
  WScript.Quit
End If

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

Dim F, SizeArr, i, TargetFile

Set SizeArr = CreateObject("Scripting.Dictionary")

For Each F In FSO.GetFolder(SourceDir).Files
  On Error Resume Next
  SizeArr.Add F.Size, F.Path
  If Err.Number <> 0 Then
    MsgBox "В исходной папке несколько файлов имеют одинаковый размер." & vbNewLine &_
      "Невозможно однозначное соответствие!", _
      vbOKOnly + vbCritical, _
      "Замена содержимого файлов"
    Set F       = Nothing
    Set FSO     = Nothing
    Set SizeArr = Nothing
    WScript.Quit
  End If
  On Error Goto 0
Next

i = 0
For Each F In FSO.GetFolder(TargetDir).Files
  TargetFile = SizeArr(F.Size)
  If FSO.FileExists(TargetFile) Then
    FSO.CopyFile TargetFile, F.Path, True
    i = i + 1
  End If
Next

MsgBox "Выполнена замена содержимого " & i & " файлов.", _
  vbOKOnly + vbInformation, _
  "Замена содержимого файлов"

Set F       = Nothing
Set FSO     = Nothing
Set SizeArr = Nothing
WScript.Quit

_________________
Нет, я не сплю. Я просто медленно моргаю.
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
Page 1 of 1

 
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