1

Тема: VBS. Функция CopyHere(<Путь>,<Опции>) Почему не работают опции

Пишу выражение

objFolder.CopyHere "ftp://User:Password@domen_name.ru/folder/subfolder/" & myFile, 4

Где:
4 - Не показывать окно с прогресс-баром (Взято из справки)
И это не работает!
Как использовать опции?

2

Re: VBS. Функция CopyHere(<Путь>,<Опции>) Почему не работают опции

Насколько я помню, на эмулируемых файловых системах (ftp, zip-папки) это не работало. Попробуйте проделать то же самое копирование на локальной системе — должно работать.

3

Re: VBS. Функция CopyHere(<Путь>,<Опции>) Почему не работают опции

Да. Действительно так, локально опции работают! Спасибо.

4

Re: VBS. Функция CopyHere(<Путь>,<Опции>) Почему не работают опции

Позволю процитировать The gray Cardinal

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("D:\Temp") 'место назначения
objFolder.CopyHere "ftp://User:Password@domen_name.ru/folder/subfolder/filename.zip"
WScript.Sleep 60000 'даём время на скачивание (минута)

Собственно если сделать в другую сторону, то тоже пашет.

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("ftp://User:Password@domen_name.ru/folder/subfolder/") 'место назначения
objFolder.CopyHere "D:\Temp\filename.zip"
WScript.Sleep 60000 'даём время на скачивание (минута)

Проверил, все пашет.

Ключевая строка, как оказалось: "WScript.Sleep 60000".
Без нее не пашет.

Нас невозможно сбить с пути, нам пофигу куда идти.

5

Re: VBS. Функция CopyHere(<Путь>,<Опции>) Почему не работают опции

DnsIs, нет, это уже про другое, наподобие: VBScript: запуск файлов ассоциированным приложением. А тут вопрос был про «как бы» не работающие параметры метода.

6 (изменено: DnsIs, 2010-11-22 12:40:41)

Re: VBS. Функция CopyHere(<Путь>,<Опции>) Почему не работают опции

Как это не работает? Работает еще как. Например копирование со стандартным Windows окном копирования файла.

objFolder.CopyHere "D:\Temp\filename.zip", 256

Говорю же, если паузу не поставить, то скрипт не дожидается копирования и все тут. Сам не знаю почему так.

Или я опять не так понял?

Нас невозможно сбить с пути, нам пофигу куда идти.

7

Re: VBS. Функция CopyHere(<Путь>,<Опции>) Почему не работают опции

Пост 2 и 3 там все.

8

Re: VBS. Функция CopyHere(<Путь>,<Опции>) Почему не работают опции

DnsIs пишет:

Как это не работает? Работает еще как.

Вы не поняли. Чтобы было понятно, посмотрите, пожалуйста, здесь:
JScript: Как копировать, чтобы был виден процесс?
VBScript: Убрать прогресс-бар сжатия при архивировании
JScript: Как заставить метод CopyHere обрабатывать параметры флагов?
VBScript: CopyHere метод при распаковке архива

DnsIs пишет:

Говорю же, если паузу не поставить, то скрипт не дожидается копирования и все тут. Сам не знаю почему так. Или я опять не так понял?

Нет, здесь Вы всё правильно поняли. Я же выше имел в виду, что вопрос темы был про параметры метода.

9

Re: VBS. Функция CopyHere(<Путь>,<Опции>) Почему не работают опции

копихере асинхронен, но не обязательно ставить задержку
можно следить за размером (наверное возможно и событие отследить, тогда будет лучче)

Set objShell = CreateObject("Shell.Application")
fname="filename.zip"
set fold=objShell.namespace("ftp://User:Password@domen_name.ru/folder/subfolder/")
set fold2=objShell.namespace("D:\Temp\")
set ff=fold2.parsename(fname)
size=-1
fold.copyhere ff.path
while size < ff.size
    set items=fold.items
    call items.Filter(64+128,"*")
    for each c in items
        if c.name=fname then size=c.size
    next
    wscript.sleep 1000
wend
Я конечно далек от мысли... (с)

10 (изменено: bnp322, 2010-11-24 05:48:57)

Re: VBS. Функция CopyHere(<Путь>,<Опции>) Почему не работают опции

smaharbA, я использовал Вашу идею, очень оказалась кстати! Спасибо!
Но на 2003R2 что-то не то! Оказалось мало прав!!
И если делать перенос файлов - переносится лишь первый!