Компьютерный форум 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=148385)

njg 19-08-2009 19:06 1197678

изменение скрипта для подключения к интернету
 
PHP код:

Title Подключение
call 
:make_dialup
echo Подключение виртуального диска
"%PROGRAMFILES%\TrueCrypt\TrueCrypt.exe" /v d:_topHCCacheHCdisk.tc /p HC /l z //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%==(
    echo 
Ok!
    ) else (
    if %
ERRORLEVEL%==734 (
        echo 
ОшибкаУдаленный комп отказал.
        ) else (
        if %
ERRORLEVEL%==720 (
            echo 
ОшибкаУдаленный комп не отвечает.
            ) else (
            if %
ERRORLEVEL%==797 (
                echo 
ОшибкаМодем не найден или занят.
                ) else (
                echo 
Ошибка с кодом %ERRORLEVEL%
                )
            )
        )
    )

if %
ERRORLEVELGTR 0 (
    
ping 127.0.0.1 -n 6 nul 


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

njg 19-08-2009 21:58 1197805

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

Вопрос по вложенности else остаеться.
И еще, как сделать два вывода echo в одну строку?
например чтобы код:
PHP код:

echo Устанавливаем DialUp подключение...
rasdial life nul
if %ERRORLEVEL%==echo Ok

вывел бы такое:

PHP код:

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


amel27 20-08-2009 07:02 1198039

Цитата:

Цитата njg
как сделать два вывода 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 1198739

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 1199018

Цитата:

Цитата El Sanchez
Символ $ в имени переменной как-то влияет на нее или это сделано для удобства »

- для удобства, "чтобы видеть";
- чтобы случайно не пересечься с системными переменными (PATH/DATE/...);
- унификация синтаксиса скриптов (aka AutoIT/PowerShell).


Время: 13:18.

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