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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Не переходит к следующей команде, если предыдущая долго выполняется (http://forum.oszone.net/showthread.php?t=222872)

snake-as 14-12-2011 08:13 1814867

Не переходит к следующей команде, если предыдущая долго выполняется
 
Добрый день, коллеги. Имею такую задачу:
Есть скрипт, который архивирует большой объем даных, потом отсылает на FTP сервер эти данные.
Вобщем,т запускаю скрипт, архивирование прошло, но на следующую команду не выходит. Жду минуту, две, три - нуль результата, архивирование закончилось, а дальше не идет. Потом я нажал правой кнопкой мыши по консоли случайно и все дальше пошло.
Я так понимаю, команда выходит в фоновый режим, но как от этого избавиться, не знаю.
Подскажите, пожалуйста.

Заранее благодарю.

Iska 14-12-2011 09:51 1814909

snake-as, не видя Вашего кода, не зная условий его выполнения — подсказать Вам сможет только штатный телепат.

snake-as 14-12-2011 10:00 1814914

Ну врядли код поможет, вот:
Код:

#Переменные
$arc_name = Get-Date -format 'yyyy_MM_dd_hh_mm'
$arc_name = 'Backup_' + $arc_name
$arc_date = Get-Date #дата в обычном формате
$arc_date = '' + $arc_date
$dir = 'F:\SQLBackup\CRM'
$old_dir = 'F:\Backup\Old_Bases'
$logfile = 'F:\Backup\backup_crm_log.txt'
$dest_dir = '\\192.168.X.X\Volume_2\sql\Bases\'

#Архивирование
$log = $arc_date + ' - Начато архивирование файлов'
$log
$log | out-file -Append $logfile
$tpid = [diagnostics.process]::start("C:\WinRAR\WinRAR.exe", "a $dir\$arc_name $dir")
$tpid.WaitForExit()
$log = $arc_date + " - Архивирование завершено"
$log
$log | out-file -Append $logfile


#Копирование на ftp
$log = $arc_date + " Копирование на ftp-сервер..." + $dest_dir
$log
$log | out-file -Append $logfile
$File = $dir + '\' + $arc_name + '.rar'
#$File
$ftp = "ftp://login:password@192.168.X.X/SQLBases/CRM/$arc_name" + '.rar'# + $arc_name
"ftp url: $ftp"
$webclient = New-Object System.Net.WebClient
$uri = New-Object System.Uri($ftp)
$webclient.UploadFile($uri, $File)
$log = $arc_date + " Копирование на ftp-сервер завершено"
$log
$log | out-file -Append $logfile


#Перемещение архива в архивную папку на локальном жестком диске
$log = $arc_date + ' - Перемещение файлов в архивную папку'
$log
$log | out-file -Append $logfile
Move-Item $dir\$arc_name.rar $old_dir
$log = $arc_date + ' - Архивы перемещены в архивную папку ' + $old_dir
$log
$log | out-file -Append $logfile

P.S: Файл весит около 5Гб в архиве. В чистом виде - около 30Гб. Если использовать скрипт для мелких файлов, все нормально.

Iska 14-12-2011 11:31 1814962

Цитата:

Цитата snake-as
Ну врядли код поможет, вот: »

Может быть и не поможет. Но видеть код, равно знать условия его выполнения — необходимо хотя бы затем, дабы, посмотрев их — исключить из влияющих факторов.

snake-as 14-12-2011 11:33 1814963

Понял.


Время: 18:26.

Время: 18:26.
© OSzone.net 2001-