PDA

Показать полную графическую версию : изменение скрипта для подключения к интернету


njg
19-08-2009, 19:06
Title Подключение
call :make_dialup
echo Подключение виртуального диска
"%PROGRAMFILES%\TrueCrypt\TrueCrypt.exe" /v d:\_top\HCCache\HCdisk.tc /p HC /l z /s /q
echo Starting HandyCache
start HandyCache.lnk
start miranda.lnk
goto EOF



:EOF
echo.
echo Выходим...
ping 127.0.0.1 -n 2 > nul
exit


:make_dialup
echo Устанавливаем DialUp подключение
rasdial life > nul

if %ERRORLEVEL%==0 (
echo Ok!
) else (
if %ERRORLEVEL%==734 (
echo Ошибка! Удаленный комп отказал.
) else (
if %ERRORLEVEL%==720 (
echo Ошибка! Удаленный комп не отвечает.
) else (
if %ERRORLEVEL%==797 (
echo Ошибка! Модем не найден или занят.
) else (
echo Ошибка с кодом %ERRORLEVEL%
)
)
)
)

if %ERRORLEVEL% GTR 0 (
ping 127.0.0.1 -n 6 > nul
)


Привел кусок скрипта, который я использую для подключению к интернету. В нем есть проблема, если перенести метку :EOF в конец то работа нарушаеться, следовательно вопрос, как заставить скрипт возвращаться после обработки метки :make_dialup к тому месту где она была вызвана? (както непонятно выразился, надеюсь поймете что имею ввиду)
И еще, вот эта вложенность операторов else, это нормально или есть какой более грамотный способ?

njg
19-08-2009, 21:58
Отвечаю сам на свой вопрос :) метку :EOF нужно удалить с содержимым, и поставить ":" в goto :EOF.

Вопрос по вложенности else остаеться.
И еще, как сделать два вывода echo в одну строку?
например чтобы код:
echo Устанавливаем DialUp подключение...
rasdial life > nul
if %ERRORLEVEL%==0 echo Ok!
вывел бы такое:

Устанавливаем DialUp подключение... Ok!

amel27
20-08-2009, 07:02
как сделать два вывода echo в одну строку? »
@Echo Off

<Nul Set /P $VAR=Устанавливаем DialUp подключение...
RasDial life >Nul
If ErrorLevel 1 (Echo Error!) Else (Echo Ok!)

El Sanchez
20-08-2009, 21:32
njg,
Ну что-то типа такого:

@echo off
Title Подключение

call :make_dialup
echo Подключение виртуального диска...
start "" "%PROGRAMFILES%\TrueCrypt\TrueCrypt.exe" /v d:_topHCCacheHCdisk.tc /p HC /l z /s /q
echo Запуск HandyCache...
start HandyCache.lnk
echo Запуск Miranda...
start miranda.lnk
echo.
echo Выходим...
ping 127.0.0.1 -n 2 > nul
goto :EOF

:make_dialup
<nul set /p $var=Устанавливаем DialUp подключение...
rasdial life>nul&&echo OK!
if %ERRORLEVEL%==734 echo Ошибка! Удаленный комп отказал.
if %ERRORLEVEL%==720 echo Ошибка! Удаленный комп не отвечает.
if %ERRORLEVEL%==797 (echo Ошибка! Модем не найден или занят.) else (echo Ошибка с кодом %ERRORLEVEL%)
if %ERRORLEVEL% GTR 0 ping 127.0.0.1 -n 6 > nul


P.S. amel27, Символ $ в имени переменной как-то влияет на нее или это сделано для удобства, чтобы видеть в коде где переменная, а где котлеты с мухами? :)

amel27
21-08-2009, 03:42
Символ $ в имени переменной как-то влияет на нее или это сделано для удобства »
- для удобства, "чтобы видеть";
- чтобы случайно не пересечься с системными переменными (PATH/DATE/...);
- унификация синтаксиса скриптов (aka AutoIT/PowerShell).




© OSzone.net 2001-2012