 |
|
помогите оптимизировать скрипт
Написано крайне криво и неграмотно, так как со скриптовым языком я впервые познакомился 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
|
dredre, для помощников было бы хорошим подспорьем (а для Вас — хорошим тоном) Ваше пояснение на предмет того, что делает (или должен делать) этот набор из пакетного файла и скрипта.
|
Время: 12:46.
© OSzone.net 2001-