Две задачи в Vb Script перекрываются? - PullRequest
0 голосов
/ 23 мая 2011

Я новичок в VB Script, но так как он прост, поэтому я взял два фрагмента кода из Интернета и соединил их в один для выполнения своей задачи.

В основном то, что я хочу, эточтобы запустить приложение с именем «MapForce.exe» и создать выходной файл, затем создайте новый каталог и скопируйте этот файл также в этот новый каталог.

Код прост:

'This is the line to call MapForce.exe and produce output file. 
createObject("wscript.shell").exec "C:\Program Files\Altova\MapForce2011\MapForce.exe 834toASCII.mfd /BUILTIN  /LOG ACS.log" 

'These are the lines to copy that output file to the new folder:

 sourceDir = "C:\Documents and Settings\Robert\test\result.txt" 
 destinationDir = "C:\Documents and Settings\Robert\test\" 
 const OverwriteExisting = True

 strDirectory = destinationDir & replace(Month(date),"/","_") & " TOU" 
 Set fso = CreateObject("Scripting.FileSystemObject")

 if not fso.FolderExists(strDirectory) then 
 Set objFolder = fso.CreateFolder(strDirectory) 
 end if
 fso.CopyFile sourceDir & "*.*", strDirectory & "\", OverwriteExisting 

Теперь это работает: Mapforce.exe запускается, генерируется вывод, создается новая папка и файл копируется в новую папку.Но вопрос в том, что MapForce потребуется больше времени для завершения и создания самого нового выходного файла, поэтому для завершения строки 1 требуется больше времени, однако остальные строки задачи копирования не ждут, пока она завершится, поэтомуфайл копируется в новую папку, всегда старая, а не самая новая, сгенерированная приложением.

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

Поэтому мне интересно, могли бы эксперты дать мне совет о том, как заставить оставшиеся строки ждать окончания первой строки и генерировать новейшие выходные данные?

1 Ответ

1 голос
/ 23 мая 2011

Вы можете использовать метод WshShell.Run .

  1. Первый параметр (ОБЯЗАТЕЛЬНЫЙ) - это исполняемый файл (включая параметры).
  2. Второй параметр (ДОПОЛНИТЕЛЬНО) определяет стиль окна.
  3. Третий параметр (ДОПОЛНИТЕЛЬНО) указывает, ожидают ли сценарии завершения команды перед продолжением.

Образец:

Dim oShell
Set oShell = WScript.CreateObject("WScript.Shell")
returnCode = oShell.Run("Your.exe Param1 Param2", 1, True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...