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

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

angel_lyucifer 03-02-2014 05:03 2301624

Проблема в echo
 
Всем привет, нужна ваша помощь! У меня есть батник, он должен писать vbs скрипт но возникла ошибка, скрипт получается не полностью.
Батник мой отказывается писать определённые строки, вот мой vbs скрипт:

PHP код:

Option Explicit
Dim objWshShell
Dim intTime4Show
Dim intMinimumTime
Dim intTimeStartShowing
Dim intRetValue
Set objWshShell 
WScript.CreateObject("WScript.Shell")
intTime4Show 10
intMinimumTime 
0
intTimeStartShowing 
Timer
Do
intRetValue objWshShell.Popup(_
"Необходимый файл для корректной работы VLP не найден."vbCrLf &"Запускается автоматическое восстановление файлов.",_
intTime4Show 
- (Timer intTimeStartShowing),_
"ВНИМАНИЕ, произошла ошибка VLP!",_
vbOKOnly 
vbInformation)
Loop Until intRetValue = -Or (Timer intTimeStartShowing)>intMinimumTime
Set objWshShell 
Nothing
WScript
.Quit 0 


А вот мой бат скрипт:

PHP код:

echo Option Explicit >dialog_vlp.vbs
echo Dim objWshShell >>dialog_vlp.vbs
echo Dim intTime4Show >>dialog_vlp.vbs
echo Dim intMinimumTime >>dialog_vlp.vbs
echo Dim intTimeStartShowing >>dialog_vlp.vbs
echo Dim intRetValue >>dialog_vlp.vbs
echo Set objWshShell WScript.CreateObject("WScript.Shell") >>dialog_vlp.vbs
echo intTime4Show 10 >>dialog_vlp.vbs
echo intMinimumTime >>dialog_vlp.vbs
echo intTimeStartShowing Timer >>dialog_vlp.vbs
echo Do >>dialog_vlp.vbs
echo intRetValue objWshShell.Popup(>>dialog_vlp.vbs
echo "Необходимый файл для корректной работы VLP не найден."vbCrLf &"Запускается автоматическое восстановление файлов.",>>dialog_vlp.vbs
echo intTime4Show - (Timer intTimeStartShowing),>>dialog_vlp.vbs
echo "ВНИМАНИЕ, произошла ошибка VLP!",>>dialog_vlp.vbs
echo  vbOKOnly vbInformation) >>dialog_vlp.vbs
echo Loop Until intRetValue = -Or (Timer intTimeStartShowing)>intMinimumTime >>dialog_vlp.vbs
echo Set objWshShell Nothing >>dialog_vlp.vbs
echo WScript.Quit 0 >>dialog_vlp.vbs 

И в итоги получаем вот такой недописанный скрипт:

PHP код:

Option Explicit
Dim objWshShell 
Dim intTime4Show 
Dim intMinimumTime
Dim intTimeStartShowing 
Dim intRetValue 
Set objWshShell 
WScript.CreateObject("WScript.Shell"
intTime4Show 10 
intMinimumTime 

intTimeStartShowing 
Timer 
Do
intRetValue objWshShell.Popup(
intTime4Show 
- (Timer intTimeStartShowing),
"ВНИМАНИЕ, произошла ошибка VLP!",
vbOKOnly 
vbInformation)
Loop Until intRetValue = -Or (Timer intTimeStartShowing)
Set objWshShell Nothing
WScript
.Quit 0 

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

Iska 03-02-2014 06:26 2301634

angel_lyucifer, изначальный посыл кода vbscript: «незакрываемый» MsgBox на заданное время — Windows Script Host, HTA (VBScript, JScript) — Серый форум состоял в:
Цитата:

Цитата Arlekin_s
Как сообщение типа WScript.Echo "Hello, world!!" сделать чтобы оно не закрывалось или его нельзя было закрыть определенное количество секунд.

А в Вашем варианте минимальное количество секунд равно нулю:
Код:

intMinimumTime = 0
и использование данного кода становится совершенно бессмысленным, поскольку весь он может быть заменён на простое:
Код:

WScript.CreateObject("WScript.Shell").Popup( _
        "Необходимый файл для корректной работы VLP не найден." & vbCrLf & _
        "Запускается автоматическое восстановление файлов.", 10, _
        "ВНИМАНИЕ, произошла ошибка VLP!", vbOKOnly + vbInformation _
)

Посему:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

>"dialog_vlp.vbs" (
        echo WScript.CreateObject^("WScript.Shell"^).Popup^( _
        echo        "Необходимый файл для корректной работы VLP не найден." ^& vbCrLf ^& _
        echo        "Запускается автоматическое восстановление файлов.", 10, _
        echo        "ВНИМАНИЕ, произошла ошибка VLP^!", vbOKOnly + vbInformation _
        echo ^)
)

endlocal
exit /b 0

P.S. Для сообщения об ошибке гораздо лучше подойдут константы «vbExclamation» или даже «vbCritical», но никак не «vbInformation».

angel_lyucifer 03-02-2014 23:07 2302169

Цитата:

Цитата Iska
WScript.CreateObject("WScript.Shell").Popup( _
"Необходимый файл для корректной работы VLP не найден." & vbCrLf & _
"Запускается автоматическое восстановление файлов.", 10, _
"ВНИМАНИЕ, произошла ошибка VLP!", vbOKOnly + vbInformation _
)
»

Данный vbs скрипт не работает!! -(

Iska 04-02-2014 08:48 2302266

angel_lyucifer, ага ;). Теперь скобки при Popup лишние.

Пробуйте:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

>"dialog_vlp.vbs" (
        echo WScript.CreateObject^("WScript.Shell"^).Popup _
        echo        "Необходимый файл для корректной работы VLP не найден." ^& vbCrLf ^& _
        echo        "Запускается автоматическое восстановление файлов.", 10, _
        echo        "ВНИМАНИЕ, произошла ошибка VLP^!", vbOKOnly + vbExclamation
)

endlocal
exit /b 0


angel_lyucifer 04-02-2014 19:49 2302710

Iska Спасибо, теперь работает!


Время: 18:59.

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