J? пасиба теперь яснее сталоRodny писал(а):Когда открыт диалог настройки панели инструментов - нажми Справка, откроется нужный раздел.SkYB писал(а):что обозначают вот эти "параметры" - %L , %P , %T , %N и т.д.
[Script] Копирование файлов по списку
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Сделал. Только при этом я не смогу отслеживать причину возможных ошибок копирования (в т.ч. принудительное нажатие кнопки "Отмена").SkYB писал(а):а можно ли в этот скрипт , вписать , чтоб он показывал какой нибудь прогресс бар
Прошу прощения, я не совсем верно описал этот вариант копирования. Он работает только, если в файле-списке указана папка, а не файл.SkYB писал(а):и последнее , вот этот параметр- чёгото не работает. Если я правильно понял , то он должен , те файлы которые в списке - перекопировать в указанную директорию с такиме же папками как в списке0 - копирование с сохранением структуры вложенных папок (по умолчанию)
Добавил к скрипту еще один вариант копирования.
Описываю все на примере.
Имеем файл-список:
Код: Выделить всё
C:\File1.ext
C:\Folder1\File2.ext
C:\Folder2\Folder3\File3.ext
C:\Folder4\Код: Выделить всё
C:\Folder4\File4.ext
C:\Folder4\Folder5\File5.ext0:
Код: Выделить всё
C:\Folder6\File1.ext
C:\Folder6\File2.ext
C:\Folder6\File3.ext
C:\Folder6\File4.ext
C:\Folder6\Folder5\File5.ext1:
Код: Выделить всё
C:\Folder6\File1.ext
C:\Folder6\File2.ext
C:\Folder6\File3.ext
C:\Folder6\File4.ext
C:\Folder6\File5.ext2:
Код: Выделить всё
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Нет, я не сплю. Я просто медленно моргаю.
-
DrShark
- Сообщения: 911
- Зарегистрирован: Сб окт 21, 2006 20:27
- Откуда: Kyiv, Ukraine
- Контактная информация:
2Batya
Скрипт для копирования по списку - отличная работа.
Обнаружил несколько багов/недочётов под Windows Vista (позже проверю на XP):
1) не во всех режимах вызывается прогресс бар;
2) не работает режим принудительной перезаписи
(когда Const Overwrite = True, всё равно появляется запрос на перезапись)
3) в меню, в которых используется параметр "", появляется ошибка:
Собственно, вот моя секция меню Запуск из wincmd.ini, в которую я прописал все варианты работы скрипта:
http://rapidshare.com/files/125496821/u ... u.zip.html
В файле Copy_from_list_2.vbs Overwrite = False, а в Copy_from_list_2_overwrite.vbs - True
Скрипт для копирования по списку - отличная работа.
Обнаружил несколько багов/недочётов под Windows Vista (позже проверю на XP):
1) не во всех режимах вызывается прогресс бар;
2) не работает режим принудительной перезаписи
(когда Const Overwrite = True, всё равно появляется запрос на перезапись)
3) в меню, в которых используется параметр "", появляется ошибка:
Код: Выделить всё
---------------------------
Windows Script Host
---------------------------
Сценарий: C:\totalcmd\Utils\Copy_from_list_2.vbs
Строка: 264
Символ: 3
Ошибка: Требуется объект: 'oSA'
Код: 800A01A8
Источник: Ошибка выполнения Microsoft VBScript
---------------------------
ОК
---------------------------http://rapidshare.com/files/125496821/u ... u.zip.html
В файле Copy_from_list_2.vbs Overwrite = False, а в Copy_from_list_2_overwrite.vbs - True
От режима не должно зависеть. Прогресс может не появляться, если копируются файлы небольшого размера. Если это не так, можно подробности?DrShark писал(а):1) не во всех режимах вызывается прогресс бар;
Поправил.DrShark писал(а):2) не работает режим принудительной перезаписи
(когда Const Overwrite = True, всё равно появляется запрос на перезапись)
Поправил.DrShark писал(а):3) в меню, в которых используется параметр "", появляется ошибка
Нет, я не сплю. Я просто медленно моргаю.
-
DrShark
- Сообщения: 911
- Зарегистрирован: Сб окт 21, 2006 20:27
- Откуда: Kyiv, Ukraine
- Контактная информация:
Мне ещё ни разу не удалось увидеть прогресс при использовании режима "1 - копирование всех файлов в корень целевой папки;", даже при копировании содержимого в несколько гигабайт.Batya писал(а):От режима не должно зависеть. Прогресс может не появляться, если копируются файлы небольшого размера. Если это не так, можно подробности?DrShark писал(а):1) не во всех режимах вызывается прогресс бар;
Странно, у меня прогресс появляется.DrShark писал(а):Мне ещё ни разу не удалось увидеть прогресс при использовании режима "1 - копирование всех файлов в корень целевой папки;", даже при копировании содержимого в несколько гигабайт.
Еще раз подчеркну - прогресс-бар появляется только при копировании больших файлов. Если копируются мелкие, он не появляется. Это не моя прихоть, так работает стандарный COM-объект. Если выполняется копирование папки с параметром 1, то я рекурсивно запускаю копирование для каждого файла, в не для всей папки сразу. Т.е., если у тебя в копируемой папке миллион файлов по 1 кб, по прогресс не появится, а вот для одного файла на 1 Гб прогресс появится.
Нет, я не сплю. Я просто медленно моргаю.
товарищи, а может ли кто-нить помочь со скриптом, который при запуске будет брать все файлы и вложенные папки из текущей папки, но за исключением заранее заданных папок и файлов (список можно прописать в самом скрипте - он не меняется), и из этих файлов-папок создавать рар-архив с заданным именем (имя также не меняется) + добавленной датой в конце в формате YYYYMMDD в папке bak?
А в чем проблема использования Script Helper?LA_ писал(а):господа, а можно ли теперь то же самое сделать, но без Script Helper?
В данном скрипте ключевые слова - "буфер обмена". Для работы с буфером обмена нужен специальный сторонний COM-объект. В качестве такового может выступать либо Script Helper, либо что-то другое.
Кто-нибудь можетLA_ писал(а):товарищи, а может ли кто-нить помочь со скриптом, который при запуске будет брать все файлы и вложенные папки из текущей папки, но за исключением заранее заданных папок и файлов
Только сейчас совсем нет свободного времени. Через недельку.
Нет, я не сплю. Я просто медленно моргаю.
осознал, что он используется лишь для этого скрипта у меня.А в чем проблема использования Script Helper?
интересно понять можно ли обойтись без него.
похоже, что этим чем-то другим может быть IE:Для работы с буфером обмена нужен специальный сторонний COM-объект. В качестве такового может выступать либо Script Helper, либо что-то другое.
ссылка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.
ага. точнее должно быть вот так:
Код: Выделить всё
'=======================================================
' Создание текстового файла с содержимым буфера обмена
'=======================================================
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