Войти

Показать полную графическую версию : IF EXIST File. Присвоить значение условия переменной.


rango13
29-09-2018, 11:04
Всем привет!

Пишу скрипт для подключения необходимых принтеров через 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
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.
)




© OSzone.net 2001-2012