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

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

R529 09-09-2015 08:46 2551242

Не доконца отрабатывается VBS скрипт.
 
Доброго времени. для примера, есть скрипт сокрытия выполнения окна bat файла. bat файл отключает, а затем подключает сетевые диски. вот пример:

Код:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd.exe /c путь_к_bat_файлу\отключение сетевых дисков.bat", 0, false
WshShell.Run "cmd.exe /c путь_к_bat_файлу\подключение сетевых дисков.bat", 0, false

Запускаю его на выполнение, скрипт отрабатывает сокрытие окна, но вот по первой строке где выполняется отключение дисков, происходит отключение только двух из четырех дисков. сами диски доступны естественно по сети и с ними все в порядке. затем вторая строка совсем не отрабатывает подключение дисков после первой команды. если выполнить каждую строку, например удаление дисков отдельно, то все происходит отлично. затем отдельным файлом подключение дисков и тоже все срабатывает. сами bat файлы (2шт.) как по отдельности так и в одном общем пакетнике выполняются без проблем. что подскажите по такому вопросу. спасибо.

Iska 09-09-2015 08:58 2551244

Цитата:

Цитата R529
что подскажите по такому вопросу »

Для начала перестаньте использовать «простой скрипт сокрытия выполнения окна bat файла» и выясните таким образом, чем вызвана проблема с:
Цитата:

Цитата R529
происходит отключение только двух из четырех дисков »


R529 09-09-2015 09:23 2551252

Iska,
благодарю. вот поставил сейчас небольшую паузу между выполнением скриптов и все наладилось. возможно скрипты не успевали отрабатывать друг за другом?

Код:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd.exe /c путь_к_bat_файлу\отключение сетевых дисков.bat", 0, false
WScript.Sleep 60000*0.5
WshShell.Run "cmd.exe /c путь_к_bat_файлу\подключение сетевых дисков.bat", 0, false


Iska 09-09-2015 10:17 2551266

R529, в таком случае — просто уберите добавленную паузу и замените в обоих вызовах «False» на «True»: это запретит асинхронное исполнение.
Цитата:

Цитата R529
возможно скрипты не успевали отрабатывать друг за другом? »

Дело в том, что они отрабатывали не друг за другом, а параллельно друг с другом — т.е., первый пакетный файл теоретически мог даже «успевать» отключать диски, подключённые вторым пакетным файлом.

R529 09-09-2015 10:28 2551269

Iska,
спасибо. сработал параметр true без паузы. :clapping:


Время: 16:19.

Время: 16:19.
© OSzone.net 2001-