View previous topic :: View next topic |
Author |
Message |
Georgе
Joined: 28 Aug 2007 Posts: 99
|
(Separately) Posted: Thu Sep 13, 2007 23:16 Post subject: Скрипт, использующий "загрузку имен из файла" |
|
|
Помогите,пожалуйста, написать скрипт, который бы делал следующее:
я устанавливаю в панелях исходную и целевую папки, нажимаю кнопочку, и файлы из одной папки переписываются поверх файлов того же размера из другой, но не под своими именами, а под именами перезаписанных. (нужно мне это для поддержки чужих закачек в торренте).
Предполагаю, что решать это надо с привлечением группового переименования и имеющегося там пункта "загрузки имен из файла". |
|
Back to top |
|
|
Georgе
Joined: 28 Aug 2007 Posts: 99
|
(Separately) Posted: Tue Sep 25, 2007 03:58 Post subject: |
|
|
Подъем темы (в связи с падением форума). |
|
Back to top |
|
|
LocKtaR-o-DarK
Joined: 12 Aug 2005 Posts: 349 Location: Москва
|
(Separately) Posted: Tue Sep 25, 2007 05:53 Post subject: |
|
|
Georgе, конкретизируй задачу, приведи примеры файлов, может что-нить и придет в голову, а так описание задачи немного расплывчато _________________ |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Tue Sep 25, 2007 10:59 Post subject: |
|
|
Georgе
При совпадении размера файлов содержимое отличается? _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Georgе
Joined: 28 Aug 2007 Posts: 99
|
(Separately) Posted: Tue Sep 25, 2007 15:15 Post subject: |
|
|
Batya В целевой директории содержимое файлов полностью или частично нули. (так поступает торрент-клиент, кладет на диск "болванки" будущих файлов, забитые нулями).
LocKtaR-o-DarK Возможные случаи когда это может пригодиться - mp3,iso,архивы. Просто iso ввиду малочисленности можно и руками переименовать, а вот медиа-файлы, разбросанные по разным папкам,переименовывать руками уже сложно, нужен скрипт. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
|
Back to top |
|
|
Georgе
Joined: 28 Aug 2007 Posts: 99
|
(Separately) Posted: Thu Sep 27, 2007 17:36 Post subject: |
|
|
Думаю, не подойдёт. Как я могу указать такому батнику какой файл перезаписывать каким? Критерий - совпадающий размер. Но как его проверить в батнике ? |
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Thu Sep 27, 2007 18:40 Post subject: |
|
|
Georgе wrote: | Критерий - совпадающий размер. |
А что если файлов с одинаковым размером будет несколько, хотя бы два? Что должен делать скрипт в этом случае? И, кроме этого, я так и не понял, у целевых файлов будут меняться имена в соответствии с именами файлов в панели-источнике или имена останутся прежними, а будет заменено тоьлко содержимое, взятое из файлов-источников
Согласен я с LocKtaR-o-DarK, привел бы ты лучше конкретный пример. |
|
Back to top |
|
|
Georgе
Joined: 28 Aug 2007 Posts: 99
|
(Separately) Posted: Thu Sep 27, 2007 19:33 Post subject: |
|
|
Volniy wrote: | Georgе wrote: | Критерий - совпадающий размер. |
А что если файлов с одинаковым размером будет несколько, хотя бы два? Что должен делать скрипт в этом случае? |
Тогда скрипт перепишет один-два файла "неправомерно". Бог с ним, торрент-клиент распознает это при перехэшировании.
Пример: две папки с мп3. В целевой директории имена кириллицей, содержимое-нули. В исходной -имена латиницей, содержимое-нормальные мп3. Надо получить в целевой нормальные мп3 с теми же именами, что были у "зануленных", то есть кириллические. (Пример частный. Плагин-транслитератор не предлагать. Это могут быть просто имена с проверенной и непроверенной орфографией, и т.д.) |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Fri Dec 14, 2007 10:58 Post subject: |
|
|
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 |
|
|
|
|
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
|