PDA

Показать полную графическую версию : [решено] Не доконца отрабатывается VBS скрипт.


R529
09-09-2015, 08:46
Доброго времени. для примера, есть скрипт сокрытия выполнения окна 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
что подскажите по такому вопросу »
Для начала перестаньте использовать «простой скрипт сокрытия выполнения окна bat файла» и выясните таким образом, чем вызвана проблема с:
происходит отключение только двух из четырех дисков »

R529
09-09-2015, 09:23
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
R529, в таком случае — просто уберите добавленную паузу и замените в обоих вызовах «False» на «True»: это запретит асинхронное исполнение.
возможно скрипты не успевали отрабатывать друг за другом? »
Дело в том, что они отрабатывали не друг за другом, а параллельно друг с другом — т.е., первый пакетный файл теоретически мог даже «успевать» отключать диски, подключённые вторым пакетным файлом.

R529
09-09-2015, 10:28
Iska,
спасибо. сработал параметр true без паузы. :clapping:




© OSzone.net 2001-2012