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

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

White-Lion 28-03-2011 18:03 1645808

Разница при способах запуска .Bat
 
Всем доброго времени суток.
Имею файл pr.bat:
читать дальше »


Код:

@echo off
echo 1 - Установка Xerox 4118
set /p answer=Выберите принтер для установки:
if /i %answer%==1 (
  echo .
  echo ^> Установка Xerox 4118. ^< 
  echo 1 - Xerox 4118 IP 10.83.803.3.
  echo 2 - Xerox 4118 USB
  set /p answer1=Выберите Вариант принтера:
if /i %answer1%==1 (
  echo .
  echo ^>^> Установка Xerox 4118 IP ^<^<
cscript %SystemRoot%\system32\prnport.vbs -a -r IP_Xerox_4118_Lan -h 10.83.203.2 -o raw -n 9100
rundll32 printui.dll,PrintUIEntry /if /b "Office_3_Xerox4118_Lan" /f \\rysdc1\install$\Draivers\Printers\Xerox_4118\OriginalDiskDriver\Driver\Print\ADDPRINT\WINXP2K\wc4118.inf /r "IP_Xerox_4118_Lan" /m "Xerox WC 4118 Series PCL 6" /u
set prdef=Office_3_Xerox4118_Lan
)
if /i %answer1%==2 (
  echo .
  echo ^>^> Установка Xerox 4118 USB ^<^<
rundll32 printui.dll,PrintUIEntry /if /b "Office_3_Xerox4118_USB2" /f \\rysdc1\install$\Draivers\Printers\Xerox_4118\OriginalDiskDriver\Driver\Print\ADDPRINT\WINXP2K\wc4118.inf /r "USB002" /m "Xerox WC 4118 Series PCL 6" /u
set prdef=Office_3_Xerox4118_USB2
)
echo dryjet
set /p otv=Установить принтер по умолчанию? Yes, No:
if /i %otv%==y rundll32 printui.dll,PrintUIEntry /y /n %prdef%
)
pause


Файл отработан, но есть загвоздка.
ести запускаю из командной строки cmd, все работает.
Но когда просто запускаю сам файл pr.bat,
появляется
читать дальше »
Код:

1 - Установка Xerox 4118
Выберите принтер для установки:


И после выбора окно пропадает без дальнейших действий.
Что я сделал не так?

ShaddyR 28-03-2011 19:41 1645886

White-Lion, 7-ка? Разница в запуске - от имени админа или без.

Petya V4sechkin 28-03-2011 21:17 1645956

Цитата:

Цитата White-Lion
Имею файл pr.bat

Попробуйте переименовать с расширением .cmd

White-Lion 29-03-2011 12:15 1646304

ShaddyR,
Я администратор. пока все тестирую на своем компе. WinXPsp3.
Petya V4sechkin,
Уже пробовал. Тоже самое. :(

Может изменить в самом коде что-нибудь?

Petya V4sechkin 29-03-2011 14:14 1646398

White-Lion, поменяйте во всех операторах if условия, например:
Код:

if /i "%answer%"=="1"

White-Lion 29-03-2011 14:59 1646436

Petya V4sechkin,
Исправил на:
читать дальше »
Код:

@echo off
echo 1 - Установка Xerox 4118
set /p answer=Выберите принтер для установки:
if /i "%answer%"=="1" (
  echo .
  echo ^> Установка Xerox 4118. ^< 
  echo 1 - Xerox 4118 IP 10.83.803.3.
  echo 2 - Xerox 4118 USB
  set /p answer1=Выберите Вариант принтера:
if /i "%answer1%"=="1" (
  echo .
  echo ^>^> Установка Xerox 4118 IP ^<^<
cscript %SystemRoot%\system32\prnport.vbs -a -r IP_Xerox_4118_Lan -h 10.83.203.2 -o raw -n 9100
rundll32 printui.dll,PrintUIEntry /if /b "Office_3_Xerox4118_Lan" /f \\rysdc1\install$\Draivers\Printers\Xerox_4118\OriginalDiskDriver\Driver\Print\ADDPRINT\WINXP2K\wc4118.inf /r "IP_Xerox_4118_Lan" /m "Xerox WC 4118 Series PCL 6" /u
set prdef=Office_3_Xerox4118_Lan
)
if /i "%answer1%"=="2" (
  echo .
  echo ^>^> Установка Xerox 4118 USB ^<^<
rundll32 printui.dll,PrintUIEntry /if /b "Office_3_Xerox4118_USB2" /f \\rysdc1\install$\Draivers\Printers\Xerox_4118\OriginalDiskDriver\Driver\Print\ADDPRINT\WINXP2K\wc4118.inf /r "USB002" /m "Xerox WC 4118 Series PCL 6" /u
set prdef=Office_3_Xerox4118_USB2
)
echo dryjet
set /p otv=Установить принтер по умолчанию? Yes, No:
if /i %otv%==y rundll32 printui.dll,PrintUIEntry /y /n %prdef%
)
pause



Начал ругаться на
непредвиденное начало Rundd32.

не помню гдето читал что нужно сделать вот так (добавил ^):
читать дальше »
Код:

if /i ^%otv%^=^=y ^rundll32 printui.dll,PrintUIEntry /y /n %prdef%


Но теперь при выборе "Выберите Вариант принтера:"
проскакивает все условия и попадает в самый последний if (принтер по умочсанию).


походу бат начинает дико нестабильно работать при большом колличестве if (особенно при их вложении).

Petya V4sechkin 29-03-2011 15:01 1646438

Цитата:

Цитата White-Lion
if /i %otv%==y rundll32 printui.dll,PrintUIEntry /y /n %prdef%

А это почему не исправили?

Код:

if /i "%otv%"=="y" rundll32 printui.dll,PrintUIEntry /y /n %prdef%

White-Lion 29-03-2011 15:24 1646454

Petya V4sechkin,
исправлял начинал ругаться на
непредвиденное начало Rundd32.

Хм.
Странно сейчас уже не ругается
но все также пропускает.

Убрал промежуточные pause перестал пропускать if при запуске bat из командной строки.
Но при обычном запуске все также пропускает.

Petya V4sechkin 29-03-2011 15:39 1646466

White-Lion, в общем, так:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

echo 1 - Установка Xerox 4118
set /p answer=Выберите принтер для установки:
if /i "!answer!"=="1" (
  echo .
  echo ^> Установка Xerox 4118. ^<
  echo 1 - Xerox 4118 IP 10.83.803.3.
  echo 2 - Xerox 4118 USB
  set /p answer1=Выберите Вариант принтера:
if /i "!answer1!"=="1" (
  echo .
  echo ^>^> Установка Xerox 4118 IP ^<^<
cscript %SystemRoot%\system32\prnport.vbs -a -r IP_Xerox_4118_Lan -h 10.83.203.2 -o raw -n 9100
rundll32 printui.dll,PrintUIEntry /if /b "Office_3_Xerox4118_Lan" /f \\rysdc1\install$\Draivers\Printers\Xerox_4118\OriginalDiskDriver\Driver\Print\ADDPRINT\WINXP2K\wc4118.inf /r "IP_Xerox_4118_Lan" /m "Xerox WC 4118 Series PCL 6" /u
set prdef=Office_3_Xerox4118_Lan
)
if /i "!answer1!"=="2" (
  echo .
  echo ^>^> Установка Xerox 4118 USB ^<^<
rundll32 printui.dll,PrintUIEntry /if /b "Office_3_Xerox4118_USB2" /f \\rysdc1\install$\Draivers\Printers\Xerox_4118\OriginalDiskDriver\Driver\Print\ADDPRINT\WINXP2K\wc4118.inf /r "USB002" /m "Xerox WC 4118 Series PCL 6" /u
set prdef=Office_3_Xerox4118_USB2
)
echo dryjet
set /p otv=Установить принтер по умолчанию? Yes, No:
if /i "!otv!"=="y" rundll32 printui.dll,PrintUIEntry /y /n !prdef!
)
pause


White-Lion 29-03-2011 15:50 1646474

Petya V4sechkin,
пришел к этому же выводу...... :) :)
но не успел написать. Огромное спасибо.

Заработало при обоих способах запуска.


Время: 10:20.

Время: 10:20.
© OSzone.net 2001-