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

asacyra 18-12-2020 23:11 2943439

Прошу указать на мои ошибки
 
Вложений: 1
Пишу скрипт для установки принтеров
Код:

@echo off
ECHO.
:m1
ECHO 1. 2035
ECHO 2. 2535
ECHO 3. exit
set /p choice=Выбор:
if '%choice%'=='1' goto 2035
if '%choice%'=='2' goto 2535
if '%choice%'=='3' goto (exit)
ECHO.

Echo.
Echo.
goto m1
pause >nul


------------------------------------------------------------------------------------
goto start
:2035
for /f "tokens=2-3 delims=:(" %%i in ('ipconfig /all^|find "IPv4"') do (
  Echo IP %computername%  =%%i
 
  for /f "tokens=1-4 delims=. " %%A in ("%%i") do (
    echo.
    cls
    echo printer = %%A.%%B.%%C.20
   
    ))
    Echo.
    echo Начитаю ставить
    Echo.
 
 cscript  //Nologo C:\Windows\System32\Printing_Admin_Scripts\ru-RU\prnport.vbs -a -r 1 -h %%A.%%B.%%C.10 -o RAW -n 9100
 pause

Получается такой результат, как во вложение. Как можно это исправить?

Iska 19-12-2020 00:15 2943444

asacyra, сначала оберните код в тэг «code».

asacyra 19-12-2020 04:36 2943449

Цитата:

Цитата Iska (Сообщение 2943444)
asacyra, сначала оберните код в тэг «code».

Выполнено

YuS_2 19-12-2020 10:05 2943454

Цитата:

Цитата asacyra
Как можно это исправить? »

Это исправить...
Если не вдаваясь в подробности, то так:
Код:

@echo off
ECHO.
:m1
ECHO 1. 2035
ECHO 2. 2535
ECHO 3. exit
set /p choice=Выбор:
if '%choice%'=='1' goto 2035
if '%choice%'=='2' goto 2535
if '%choice%'=='3' goto (exit)
ECHO.

Echo.
Echo.
goto m1
pause >nul

------------------------------------------------------------------------------------
goto start
:2035
for /f "tokens=2-3 delims=:(" %%i in ('ipconfig /all^|find "IPv4"') do (
        Echo IP %computername%  =%%i
        for /f "tokens=1-4 delims=. " %%A in ("%%i") do (
                echo.
                cls
                echo printer = %%A.%%B.%%C.20
                set var=%%A.%%B.%%C
        )
)
Echo.
echo Начинаю ставить
Echo.
 
cscript  //Nologo C:\Windows\System32\Printing_Admin_Scripts\ru-RU\prnport.vbs -a -r 1 -h %var%.10 -o RAW -n 9100
pause

Если с подробностями, то в коде много лишнего, но главное:
Вы не учитываете, что IP может быть более одного и в итоге, в переменной %var% окажется только последняя сеть...


Время: 15:14.

Время: 15:14.
© OSzone.net 2001-