Прошу помощи в написании VBS-скрипта

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Очень прошу помощи в написании скрипта! Имеется .BATник для выполнения некоторых операций с файлами, нужно написать тоже самое только в .VBS. Всем кто поможет заранее большое спасибо!
My_Batnik.BAT
@ECHO OFF
Start C:\My_Folder\My_Proga_1.exe /h /s >nul
set Timer1=300
ping -n %Timer1% 127.0.0.1 >nul
:Loop
set Timer2=2
ping -n %Timer2% 127.0.0.1 >nul
if not exist "*.mp3" goto Go
for /r %%i in (*.mp3) do ( "Rar.exe" m[f] -ep -inul -hp12345 -m5 -y "MP3_Files.rar" "%%i" )
:Go
if not exist "MP3_Files.rar" goto Loop
if exist "MP3_Files.rar" (
for %%i in ("MP3_Files.rar") do (
if %%~zi gtr 524288 (Start /wait My_Proga_2.exe)
) )
goto Loop
Предполагаю что начало должно выглядеть так:
My_Skript.VBS
on error resume next
WScript.Sleep (300000) 'Запуск первого таймера 300 сек
Set S = CreateObject("Wscript.Shell")
S.run "C:\My_Folder\My_Proga_1.exe /h /s",0 'Запуск первого файла
DO 'Запуск цикла
Тут?????
LOOP 'Окончание цикла
Как дальше не знаю, и в Google найти ничего не могу. Помогите плиз!!!!

Решение задачи: «Прошу помощи в написании VBS-скрипта»

textual
Листинг программы
<font color="blue">option</font> <font color="blue">explicit</font>

<font color="#00AA00">' строка запуска для My_Proga_1.exe</font>
<font color="blue">const</font> sProga1Run=<font color="teal">""</font><font color="teal">"C:\My_Folder\My_Proga_1.exe"</font><font color="teal">" /h /s"</font>

<font color="#00AA00">' строка запуска для My_Proga_2.exe</font>
<font color="blue">const</font> sProga2Run=<font color="teal">"My_Proga_2.exe"</font>

<font color="#00AA00">' максимальный размер архива</font>
<font color="blue">const</font> iMaxArkhSize= <font color="darkblue"><b>524288</b></font>

<font color="blue">dim</font> idelay, boolExists
<font color="blue">dim</font> objFSO, objWSHShell, objFolder, objFile
<font color="blue">dim</font> sWorkingDir, sArkhPath, sRarRun

<font color="#00AA00">' величина паузы в цикле</font>
idelay= <font color="darkblue"><b>2000</b></font>

<font color="#00AA00">' папка из которой запущен скрипт</font>
sWorkingDir= replace(wscript.ScriptFullName, <font color="teal">"\"</font> & wsctipt.ScriptName, <font color="teal">""</font>)

<font color="#00AA00">' полный путь к архиву</font>
sArkhPath= sWorkingDir & <font color="teal">"\MP3_Files.rar"</font>

<font color="#00AA00">' строка запуска для rar.exe</font>
sRarRun=<font color="teal">"rar.exe m[f] -ep -inul -hp12345 -m5 -y "</font><font color="teal">""</font> & sArkhPath &  <font color="teal">""</font><font color="teal">" *.mp3"</font>

<font color="#00AA00">' объект: Scripting.FileSysytemObject</font>
<font color="blue">set</font> objFSO= CreateObject(<font color="teal">"Scripting.FileSysytemObject"</font>)

<font color="#00AA00">' объект: WScript.Shell</font>
<font color="blue">set</font> objWSHShell= CreateObject(<font color="teal">"WScript.Shell"</font>)

<font color="#00AA00">' объект: папка из которой запуцщен скрипт</font>
<font color="blue">set</font> objFolder = setFSO.GetFolder(sWorkingDir)

<font color="#00AA00">' запуск My_Proga_1.exe без ожидания завершения и пауза в 5 минут</font>
objWSHShell.Run sProga1Run,<font color="darkblue"><b>1</b></font>,false
wscript.sleep <font color="darkblue"><b>300000</b></font>

<font color="blue">do</font> 
<font color="#00AA00">'  ?есть *.mp3</font>
<font color="#00AA00">'   да: запаковать   </font>
   <font color="#00AA00">' флаг наличия .mp3 фалов</font>
   boolExists= false
   
   <font color="#00AA00">' для каждого файла в папке objFolder: если имя файла оканчивается на <font color="teal">".mp3"</font></font>
   <font color="#00AA00">' установить флаг boolExists, выйти из цикла for each</font>
   <font color="blue">for</font> <font color="blue">each</font> objFile <font color="blue">in</font> objFolder
     <font color="blue">if</font> right(objFile.<font color="blue">Name</font>,<font color="darkblue"><b>4</b></font>)=<font color="teal">".mp3"</font> <font color="blue">then</font> 
	   boolExists=true
	   <font color="blue">exit</font> <font color="blue">for</font> 
     <font color="blue">end</font> <font color="blue">if</font> 	 
   <font color="blue">next</font>
   
   <font color="#00AA00">' если установлен флаг boolExists запустить rar.exe, дождаться окончания его работы</font>
   <font color="blue">if</font> boolExists <font color="blue">then</font> objWSHShell.Run sRarRun,<font color="darkblue"><b>1</b></font>,true
   
<font color="#00AA00">'   ?есть MP3_Files.rar</font>
<font color="#00AA00">'   да: ?размер MP3_Files.rar > 524288</font>
<font color="#00AA00">'       да: запустить /wait My_Proga_2.exe</font>
<font color="#00AA00">' REM наличие архива можно также проверить косвенно - по флагу boolExists</font>
    <font color="blue">if</font> objFSO.FileExists(sArkhPath) <font color="blue">then</font>
        <font color="blue">set</font> objFile= objFSO.GetFile(sArkhPath)
        <font color="blue">if</font> objFile.Size > iMaxArkhSize <font color="blue">then</font> objWSHShell.Run sProga2Run,<font color="darkblue"><b>1</b></font>,true
    <font color="blue">end</font> <font color="blue">if</font>
   
<font color="#00AA00">'   пауза </font>
   wscript.sleep idelay

<font color="#00AA00">' завершить цикл при наличии в папке из которой запущен скрипт</font>
<font color="#00AA00">' файла с именем STOPLOOPING.FLAG ( фича )</font>
   boolExists= objFSO.FileExists(sWorkingDir & <font color="teal">"\STOPLOOPING.FLAG"</font>)
<font color="blue">loop</font> <font color="blue">until</font> boolExists

wscript.quit

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5