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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   IF EXIST File. Присвоить значение условия переменной. (http://forum.oszone.net/showthread.php?t=336915)

rango13 29-09-2018 11:04 2833458

IF EXIST File. Присвоить значение условия переменной.
 
Всем привет!

Пишу скрипт для подключения необходимых принтеров через bat-файл. В нём есть такое условие:

Код:

IF EXIST "C:\Windows\SysWOW64\Printing_Admin_Scripts\en-US\Prnport.vbs" (set prnport="C:\Windows\SysWOW64\Printing_Admin_Scripts\en-US\Prnport.vbs")
Вопрос: как сделать так, чтобы присваивать переменной prnport путь к файлу, который стоит после оператора IF EXIST? Т.е. чтобы два раза не писать путь к файлу полностью в условии и в присвоении переменной. В гугле не смог найти решение.


На всякий случай полный код скрипта:
@ECHO OFF

:: PRN-1(10.0.0.100) - Xerox 5335
:: PRN-2(10.0.0.101) - Xerox M128
::::::::::::::::::::::::::::::::::::::::
::define path to *.inf filefile
set prn1-drv-path="\\srv01\drv\printers\UNIV_5.496.7.0_PCL6_x64_Driver.inf\x2UNIVX.inf"
set prn2-drv-path="\\srv01\drv\printers\Xerox WorkCentre M123_M128\win7-10\x64\pcl\XRUCCM01.INF"

::define IP address
set PRN1_IP=10.0.0.100
set PRN2_IP=10.0.0.101
::define correct drivername
set PRN1_DRV_NAME="Xerox Global Print Driver PCL6"
set PRN2_DRV_NAME="Xerox WC Pro 128 PCL"
::define printer name
set PRN1_NAME="Xerox Xerox 5335"
set PRN2_NAME="Xerox Xerox M128"

::define path to VBS_Prn_Script
IF EXIST "C:\Windows\SysWOW64\Printing_Admin_Scripts\en-US\Prnport.vbs" (set prnport="C:\Windows\SysWOW64\Printing_Admin_Scripts\en-US\Prnport.vbs")
IF EXIST "C:\Windows\SysWOW64\Printing_Admin_Scripts\ru-RU\Prnport.vbs" (set prnport="C:\Windows\SysWOW64\Printing_Admin_Scripts\ru-RU\Prnport.vbs")
IF EXIST "C:\Windows\System32\Printing_Admin_Scripts\ru-RU\Prnport.vbs" (set prnport="C:\Windows\System32\Printing_Admin_Scripts\ru-RU\Prnport.vbs")

cscript %prnport% -a -r IP_%PRN1_IP% -h %PRN1_IP% -o raw -n 9100
cscript %prnport% -a -r IP_%PRN2_IP% -h %PRN2_IP% -o raw -n 9100

rundll32 printui.dll,PrintUIEntry /if /b %PRN1_NAME% /f %prn1-drv-path% /r "IP_%PRN1_IP%" /m %PRN1_DRV_NAME%
rundll32 printui.dll,PrintUIEntry /if /b %PRN2_NAME% /f %prn2-drv-path% /r "IP_%PRN2_IP%" /m %PRN2_DRV_NAME%

Iska 29-09-2018 11:28 2833463

Код:

rem define path to VBS_Prn_Script
rem IF EXIST "C:\Windows\SysWOW64\Printing_Admin_Scripts\en-US\Prnport.vbs" (set prnport="C:\Windows\SysWOW64\Printing_Admin_Scripts\en-US\Prnport.vbs")
rem IF EXIST "C:\Windows\SysWOW64\Printing_Admin_Scripts\ru-RU\Prnport.vbs" (set prnport="C:\Windows\SysWOW64\Printing_Admin_Scripts\ru-RU\Prnport.vbs")
rem IF EXIST "C:\Windows\System32\Printing_Admin_Scripts\ru-RU\Prnport.vbs" (set prnport="C:\Windows\System32\Printing_Admin_Scripts\ru-RU\Prnport.vbs")

for %%i in (
        "%SystemRoot%\SysWOW64\Printing_Admin_Scripts\en-US\Prnport.vbs" "%SystemRoot%\SysWOW64\Printing_Admin_Scripts\ru-RU\Prnport.vbs" "%SystemRoot%\System32\Printing_Admin_Scripts\ru-RU\Prnport.vbs"
) do if exist "%%~i" set sPrnPort.vbs=%%~i

rem cscript %prnport% -a -r IP_%PRN1_IP% -h %PRN1_IP% -o raw -n 9100
rem cscript %prnport% -a -r IP_%PRN2_IP% -h %PRN2_IP% -o raw -n 9100

if defined sPrnPort.vbs (
        cscript.exe //nologo "%sPrnPort.vbs%" -a -r IP_%PRN1_IP% -h %PRN1_IP% -o raw -n 9100
        cscript.exe //nologo "%sPrnPort.vbs%" -a -r IP_%PRN2_IP% -h %PRN2_IP% -o raw -n 9100
) else (
        echo Can't find Prnport.vbs.
)



Время: 23:11.

Время: 23:11.
© OSzone.net 2001-