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

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

dredre 18-09-2011 04:39 1755218

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


updater.bat
читать дальше »
Код:

@Echo off

call :read_settings %~dp0\settings.txt || exit /b 1

echo etkapath : %etkapath%
echo nau : %nau%
echo nse : %nse%
echo nsk : %nsk%
echo nvw : %nvw%

:read_settings

set SETTINGSFILE=%1

rem Проверка существования файла
if not exist %SETTINGSFILE% (
    echo FAIL: Файл с настройками отсутствует
    exit /b 1
)

for /f "eol=# delims== tokens=1,2" %%i in (%SETTINGSFILE%) do (
    set %%i=%%j
)

Echo AUDI

set m=au
set m2=audi

:label1
set /a nau="%nau%+1"

if exist "%etkapath%\%m%\Update\etup%m%%nau%0.exe" GOTO label1

Set ROOT=%etkapath%\%m%\Update
Set KBFile1=etup%m%%nau%0.exe
Set KB_Url1=http://update1.lex-com.net/update/%m2%/0/etup%m%%nau%0.exe

Call :KB_TEST "%KBFile1%" "%KB_Url1%"
Echo.
pause
EXIT

:KB_TEST
<Nul Set /P $_X="%~1..."

If Exist "%ROOT%\%~1" Echo Ok& Exit /B
<Nul Set /P $_X=Loading

CScript //NoLogo "script.vbs" "%ROOT%\%~1" "%~2"
Set ERR=%ErrorLevel%

<Nul Set /P $_X=
If %ERR% EQU 0 (
Echo Ok   
GOTO label1
) Else Echo ERROR 

Echo SEAT

set m=se
set m2=seat

:label2
set /a nse="%nse%+1"

if exist "%etkapath%\%m%\Update\etup%m%%nse%0.exe" GOTO label2

Set ROOT=%etkapath%\%m%\Update
Set KBFile1=etup%m%%nse%0.exe
Set KB_Url1=http://update1.lex-com.net/update/%m2%/0/etup%m%%nse%0.exe

Call :KB_TEST "%KBFile1%" "%KB_Url1%"
Echo.
pause
EXIT

:KB_TEST
<Nul Set /P $_X="%~1..."

If Exist "%ROOT%\%~1" Echo Ok& Exit /B
<Nul Set /P $_X=Loading

CScript //NoLogo "script.vbs" "%ROOT%\%~1" "%~2"
Set ERR=%ErrorLevel%

<Nul Set /P $_X=
If %ERR% EQU 0 (
Echo Ok   
GOTO label2
) Else Echo ERROR 

Echo SKODA

set m=sk
set m2=skoda

:label3
set /a nsk="%nsk%+1"

if exist "%etkapath%\%m%\Update\etup%m%%nsk%0.exe" GOTO label3

Set ROOT=%etkapath%\%m%\Update
Set KBFile1=etup%m%%nsk%0.exe
Set KB_Url1=http://update1.lex-com.net/update/%m2%/0/etup%m%%nsk%0.exe

Call :KB_TEST "%KBFile1%" "%KB_Url1%"
Echo.
pause
EXIT

:KB_TEST
<Nul Set /P $_X="%~1..."

If Exist "%ROOT%\%~1" Echo Ok& Exit /B
<Nul Set /P $_X=Loading

CScript //NoLogo "script.vbs" "%ROOT%\%~1" "%~2"
Set ERR=%ErrorLevel%

<Nul Set /P $_X=
If %ERR% EQU 0 (
Echo Ok   
GOTO label3
) Else Echo ERROR 

Echo VW

set m=vw
set m2=vw

:label4
set /a nvw="%nvw%+1"

if exist "%etkapath%\%m%\Update\etup%m%%nvw%0.exe" GOTO label4

Set ROOT=%etkapath%\%m%\Update
Set KBFile1=etup%m%%nvw%0.exe
Set KB_Url1=http://update1.lex-com.net/update/%m2%/0/etup%m%%nvw%0.exe

Call :KB_TEST "%KBFile1%" "%KB_Url1%"
Echo.
pause
EXIT

:KB_TEST
<Nul Set /P $_X="%~1..."

If Exist "%ROOT%\%~1" Echo Ok& Exit /B
<Nul Set /P $_X=Loading

CScript //NoLogo "script.vbs" "%ROOT%\%~1" "%~2"
Set ERR=%ErrorLevel%

<Nul Set /P $_X=
If %ERR% EQU 0 (
Echo Ok   
GOTO label4
) Else Echo ERROR 

Exit /B

pause



script.vbs
читать дальше »
Код:

If Wscript.Arguments.Count=2 Then
  WScript.Quit(HTTPFileGet(Wscript.arguments.Item(1), Wscript.arguments.Item(0)))
Else
  WScript.Quit(1)
End If

Function HTTPFileGet(strFileURL, strFileSave)
  Dim objXMLHTTP, objADOStream, objFSO
  HTTPFileGet = 1

  Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
  Set objADOStream = CreateObject("ADODB.Stream")
  Set objFSO = Createobject("Scripting.FileSystemObject")

  objXMLHTTP.Open "GET", strFileURL, False
  objXMLHTTP.Send()

  If objXMLHTTP.Status = 200 Then
      objADOStream.Open
      objADOStream.Type = 1

      objADOStream.Write objXMLHTTP.ResponseBody
      objADOStream.Position = 0

      If objFSO.FileExists(strFileSave) Then objFSO.DeleteFile strFileSave

      objADOStream.SaveToFile strFileSave
      objADOStream.Close

      HTTPFileGet = 0
  End If
End Function



settings.txt
читать дальше »
Код:

etkapath=C:\Program Files\ETKA\VWAU\DATA
nau=842
nse=372
nsk=376
nvw=842


Iska 18-09-2011 05:10 1755221

dredre, для помощников было бы хорошим подспорьем (а для Вас — хорошим тоном) Ваше пояснение на предмет того, что делает (или должен делать) этот набор из пакетного файла и скрипта.


Время: 12:46.

Время: 12:46.
© OSzone.net 2001-