Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] зависает robocopy (http://forum.oszone.net/showthread.php?t=289124)

Опиум 08-10-2014 17:08 2412700

зависает robocopy
 
фрагмент скрипта:
Код:

Set WshShell = WScript.CreateObject("WScript.Shell")

Wscript.echo "robocopy /mir /MOVE /r:1 /w:1 /xj " & SrcDir & " " & DstDir
set robojob=WshShell.Exec("robocopy /mir /MOVE /r:1 /w:1 /xj " & SrcDir & " " & DstDir)

While robojob.status=0
 Wscript.sleep (500)
Wend

робокопи начинает выполнятся, копирует несколько файлов и зависает. Скрипт запускал хоть под wscript хоть cscript...

если ручками копипастнуть в cmd вывод Wscript.echo "robocopy /mir /MOVE /r:1 /w:1 /xj " & SrcDir & " " & DstDir
то все отрабатывается.

Iska 08-10-2014 17:25 2412705

Опиум, у Вас «SrcDir» и «DstDir», надо полагать, не пустые? Покажите их задание.

Опиум 08-10-2014 17:33 2412708

нет, они не пустые и контрольно перед запуском отображаются. я же написал.

суть в том что копировании начинается корректно... но виснет.

Iska 08-10-2014 17:38 2412712

Опиум, если Вам не трудно — Вы не могли бы читать меня полностью:
Цитата:

Цитата Iska
Покажите их задание. »

!?

Я видел, что Вы написали. Но что именно у Вас отображается «контрольно», какие именно несколько файлов копирует, на каком файле «виснет», как именно Вы определяете, что несколько файлов копирует, что именно «виснет» — знаете пока только Вы.

Опиум 08-10-2014 17:51 2412719

тестировал скрипт на папках с фотками. много jpg файлов размером 2-5мб.
несколько файлов копируется в DstDir... и сразу видно на каком завис - jpg открывается с ошибкой.
процесс robocopy висит, ресурсов cpu не потребляет, копирование не идет.

Сейчас удивился, на w7 отработал, а на w2008r2 виснет.

Цитата:

Цитата Iska
Покажите их задание »

непокажу) потому что оно громоздко и не суть.
если robocopy c этими параметрами не запускать из скрипта, а копипастнуть руками в cmd то все отработает.

Iska 08-10-2014 18:03 2412728

Продолжайте «копипастить в cmd» и дальше, коль «оно громоздко и не суть», и Вам сложно скопировать сие сюда. Как скажете.

Опиум 08-10-2014 18:17 2412738

Вложений: 1
загрузил скриншот. там видно src и dst папки.
в dst виден файл на котором завис robocopy (DSC_0215.JPG)

Опиум 09-10-2014 09:55 2412938

короче. той инфо что давал вам было достаточно. разобрался сам. дело в выводе.
перенаправил все в лог файл и все заработало.
ключи robocopy /np /log+:

Iska 09-10-2014 15:32 2413095

Дело не в выводе, а в отсутствии чтения из внутренних буферов для потоков вывода и ошибок в Вашем скрипте: Hang When Reading StdErr/StdOut Properties of WshScriptExec Object.

Опиум 09-10-2014 15:46 2413101

Iska, все верно. нет вывода - нет проблемы. Я так решил, хотя, как указано по ссылке, можно было просто вычитывать буфер.

Iska 09-10-2014 16:00 2413107

Опиум, нет-нет, всё нормально: выбранный Вами обходной путь вполне возможен, если приемлем для Вас. Главное, что Вы самостоятельно нашли причину подвисания.


Время: 07:05.

Время: 07:05.
© OSzone.net 2001-