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] Копирование файлов по списку
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
SkYB



Joined: 04 Mar 2006
Posts: 23
Location: Киев

Post (Separately) Posted: Fri Jun 27, 2008 16:21    Post subject: Reply with quote

Rodny wrote:
SkYB wrote:
что обозначают вот эти "параметры" - %L , %P , %T , %N и т.д.

Когда открыт диалог настройки панели инструментов - нажми Справка, откроется нужный раздел.

J? пасиба теперь яснее стало Rolling Eyes
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Fri Jun 27, 2008 18:42    Post subject: Reply with quote

SkYB wrote:
а можно ли в этот скрипт , вписать , чтоб он показывал какой нибудь прогресс бар

Сделал. Только при этом я не смогу отслеживать причину возможных ошибок копирования (в т.ч. принудительное нажатие кнопки "Отмена").

SkYB wrote:
и последнее , вот этот параметр
Quote:
0 - копирование с сохранением структуры вложенных папок (по умолчанию)
- чёгото не работает. Если я правильно понял , то он должен , те файлы которые в списке - перекопировать в указанную директорию с такиме же папками как в списке

Прошу прощения, я не совсем верно описал этот вариант копирования. Он работает только, если в файле-списке указана папка, а не файл.
Добавил к скрипту еще один вариант копирования.
Описываю все на примере.
Имеем файл-список:
Code:
C:\File1.ext
C:\Folder1\File2.ext
C:\Folder2\Folder3\File3.ext
C:\Folder4\

При этом папка "C:\Folder4\" содержит
Code:
C:\Folder4\File4.ext
C:\Folder4\Folder5\File5.ext

В результате копирования в папку "C:\Folder6\" при разных режимах имеем:
0:
Code:
C:\Folder6\File1.ext
C:\Folder6\File2.ext
C:\Folder6\File3.ext
C:\Folder6\File4.ext
C:\Folder6\Folder5\File5.ext
В данном случае структура сохраняется только при копировании папок.

1:
Code:
C:\Folder6\File1.ext
C:\Folder6\File2.ext
C:\Folder6\File3.ext
C:\Folder6\File4.ext
C:\Folder6\File5.ext
Все файлы копируются в целевую папку без разбивки по вложенным папкам.

2:
Code:
C:\Folder6\File1.ext
C:\Folder6\Folder1\File2.ext
C:\Folder6\Folder2\Folder3\File3.ext
C:\Folder6\Folder4\File4.ext
C:\Folder6\Folder4\Folder5\File5.ext
Копирование выполняется с сохранением полной структуры вложенности до корня диска.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
SkYB



Joined: 04 Mar 2006
Posts: 23
Location: Киев

Post (Separately) Posted: Fri Jun 27, 2008 19:18    Post subject: Reply with quote

Просто зе Бест, огромное пасиба ещё раз, лучше и не придумать. Угостил бы пивом , только жаль живём далековато Wink
Back to top
View user's profile Send private message
DrShark



Joined: 21 Oct 2006
Posts: 911
Location: Kyiv, Ukraine

Post (Separately) Posted: Sat Jun 28, 2008 03:10    Post subject: Reply with quote

2Batya
Скрипт для копирования по списку - отличная работа.
Обнаружил несколько багов/недочётов под Windows Vista (позже проверю на XP):
1) не во всех режимах вызывается прогресс бар;
2) не работает режим принудительной перезаписи
(когда Const Overwrite = True, всё равно появляется запрос на перезапись)
3) в меню, в которых используется параметр "", появляется ошибка:
Code:
---------------------------
Windows Script Host
---------------------------
Сценарий:   C:\totalcmd\Utils\Copy_from_list_2.vbs
Строка:   264
Символ:   3
Ошибка:   Требуется объект: 'oSA'
Код:   800A01A8
Источник:    Ошибка выполнения Microsoft VBScript

---------------------------
ОК   
---------------------------

Собственно, вот моя секция меню Запуск из wincmd.ini, в которую я прописал все варианты работы скрипта:
http://rapidshare.com/files/125496821/user_menu.zip.html
В файле Copy_from_list_2.vbs Overwrite = False, а в Copy_from_list_2_overwrite.vbs - True
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Mon Jun 30, 2008 11:32    Post subject: Reply with quote

DrShark wrote:
1) не во всех режимах вызывается прогресс бар;

От режима не должно зависеть. Прогресс может не появляться, если копируются файлы небольшого размера. Если это не так, можно подробности?
DrShark wrote:
2) не работает режим принудительной перезаписи
(когда Const Overwrite = True, всё равно появляется запрос на перезапись)

Поправил.
DrShark wrote:
3) в меню, в которых используется параметр "", появляется ошибка

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



Joined: 21 Oct 2006
Posts: 911
Location: Kyiv, Ukraine

Post (Separately) Posted: Tue Jul 01, 2008 22:11    Post subject: Reply with quote

Batya wrote:
DrShark wrote:
1) не во всех режимах вызывается прогресс бар;

От режима не должно зависеть. Прогресс может не появляться, если копируются файлы небольшого размера. Если это не так, можно подробности?

Мне ещё ни разу не удалось увидеть прогресс при использовании режима "1 - копирование всех файлов в корень целевой папки;", даже при копировании содержимого в несколько гигабайт.
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Wed Jul 02, 2008 14:36    Post subject: Reply with quote

DrShark wrote:
Мне ещё ни разу не удалось увидеть прогресс при использовании режима "1 - копирование всех файлов в корень целевой папки;", даже при копировании содержимого в несколько гигабайт.

Странно, у меня прогресс появляется.
Еще раз подчеркну - прогресс-бар появляется только при копировании больших файлов. Если копируются мелкие, он не появляется. Это не моя прихоть, так работает стандарный COM-объект. Если выполняется копирование папки с параметром 1, то я рекурсивно запускаю копирование для каждого файла, в не для всей папки сразу. Т.е., если у тебя в копируемой папке миллион файлов по 1 кб, по прогресс не появится, а вот для одного файла на 1 Гб прогресс появится.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
SkYB



Joined: 04 Mar 2006
Posts: 23
Location: Киев

Post (Separately) Posted: Wed Jul 02, 2008 17:13    Post subject: Reply with quote

Подтверждаю , что прогресс бар появляется - у меня всё пашет на ура , спасибо автору ! Wink
Back to top
View user's profile Send private message
DrShark



Joined: 21 Oct 2006
Posts: 911
Location: Kyiv, Ukraine

Post (Separately) Posted: Thu Jul 03, 2008 16:26    Post subject: Reply with quote

Да, точно, на больших файлах прогресс появляется.
Реквест к скрипту: поддержка в файле-списке путей вида
file://localhost/X:/Somedir/
file://localhost/X:/Somedir/file.xyz
т.к. часто приходится брать пути из браузера или веб-редактора.
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Thu Jul 03, 2008 18:54    Post subject: Reply with quote

DrShark wrote:
Реквест к скрипту: поддержка в файле-списке путей вида
file://localhost/X:/Somedir/
file://localhost/X:/Somedir/file.xyz

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



Joined: 07 Dec 2006
Posts: 31

Post (Separately) Posted: Thu Jul 10, 2008 21:17    Post subject: Reply with quote

товарищи, а может ли кто-нить помочь со скриптом, который при запуске будет брать все файлы и вложенные папки из текущей папки, но за исключением заранее заданных папок и файлов (список можно прописать в самом скрипте - он не меняется), и из этих файлов-папок создавать рар-архив с заданным именем (имя также не меняется) + добавленной датой в конце в формате YYYYMMDD в папке bak?
Back to top
View user's profile Send private message
LA_



Joined: 07 Dec 2006
Posts: 31

Post (Separately) Posted: Thu Jul 10, 2008 21:31    Post subject: Reply with quote

Batya
Quote:
LA_
vbs-скрипт, использующий Script Helper:
Код:
'=======================================================
' Создание текстового файла с содержимым буфера обмена
'=======================================================

господа, а можно ли теперь то же самое сделать, но без Script Helper?
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Fri Jul 11, 2008 11:25    Post subject: Reply with quote

LA_ wrote:
господа, а можно ли теперь то же самое сделать, но без Script Helper?
А в чем проблема использования Script Helper?
В данном скрипте ключевые слова - "буфер обмена". Для работы с буфером обмена нужен специальный сторонний COM-объект. В качестве такового может выступать либо Script Helper, либо что-то другое.

LA_ wrote:
товарищи, а может ли кто-нить помочь со скриптом, который при запуске будет брать все файлы и вложенные папки из текущей папки, но за исключением заранее заданных папок и файлов
Кто-нибудь может Wink
Только сейчас совсем нет свободного времени. Через недельку.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
LA_



Joined: 07 Dec 2006
Posts: 31

Post (Separately) Posted: Fri Jul 11, 2008 22:56    Post subject: Reply with quote

Quote:
А в чем проблема использования Script Helper?

осознал, что он используется лишь для этого скрипта у меня.
интересно понять можно ли обойтись без него.

Quote:
Для работы с буфером обмена нужен специальный сторонний COM-объект. В качестве такового может выступать либо Script Helper, либо что-то другое.

похоже, что этим чем-то другим может быть IE:
Quote:
Neither WSH nor VBScript are able to interact with the clipboard: neither one allows you to copy data to the clipboard and or to paste data from the clipboard. Internet Explorer, on the other hand, can interact with the clipboard.

ссылка
Back to top
View user's profile Send private message
LA_



Joined: 07 Dec 2006
Posts: 31

Post (Separately) Posted: Fri Jul 11, 2008 23:03    Post subject: Reply with quote

ага. точнее должно быть вот так:
Code:
'=======================================================
' Создание текстового файла с содержимым буфера обмена
'=======================================================

Option Explicit
Dim FileName
'========== Изменяемые параметры =======================
FileName  = "descript.txt" ' Имя создаваемого файла
'=======================================================
Dim objIE, Clip, Btn, FSO, OTL, Mess, Title

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
Clip = objIE.document.parentwindow.clipboardData.GetData("text")
Set objIE = Nothing

If Len(Clip) > 0 Then
  Set FSO = CreateObject("Scripting.FileSystemObject")
  If FSO.FileExists(FileName) Then
    Mess = "Буфер обмена содержит текст." & vbNewLine & _
           "Заменить содержимое файла " & FileName & _
           " текстом из буфера обмена?" & vbNewLine
    Title = "Замена содержимого файла"
  Else
    Mess = "Буфер обмена содержит текст." & vbNewLine & _
           "Создать файл " & FileName & _
           " с содержимым буфера обмена?" & vbNewLine
    Title = "Создание текстового файла"
  End If
  Btn = MsgBox(Mess, vbYesNo + vbQuestion, Title)
  If Btn = 7 Then 'Кнопка No
    Set FSO = Nothing
    WScript.Quit
  End If
Else
  WScript.Quit
End If

Set OTL = FSO.OpenTextFile(FileName, 2, True)
OTL.Write Clip
OTL.Close

Set OTL = Nothing
Set FSO = 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
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
Page 2 of 9

 
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