강좌 / 팁

윈 도 우 프린터 드라이버 자동 설치 배치 파일

2015.05.08 19:11

제이준 조회:7270 추천:3

안녕하세요.

꽤 오랜 시간이 지나서야 이렇게 두 번째로 인사드립니다.

지난 번 배치 파일의 문제를 어느 정도 개선한 것으로

크게 문제 없이 작동 되는 것으로 판단되어 이렇게 다시 드려 봅니다.

설명이 부실하여 정말 죄송합니다. (__)

 

 

 

@echo off
pushd %~dp0
setlocal enabledelayedexpansion

 

:main
set o1=
set o2=
set ht=
set ip=
set yn=
set pn=
set mn=
set tl=

 

cls
echo.
echo.
echo  - 네트워크 프린터를 설치합니다 -
echo.
echo.
echo   1. FX DocuCentre-IV 2060
echo.
echo   2. FX DocuCentre-IV 3060
echo.
echo   3. FX DocuCentre-IV 3065
echo.
echo.
echo   (해당 키 외를 입력하면 종료합니다)
echo.
echo.

 

set /p mn=설치하실 프린터를 입력하십시오 [ENTER] :
if "%mn%" == "" goto exit

 

set /p ip=프린터 IP 주소를 입력하십시오  [ENTER] :
if "%ip%" == "" goto main

 

set /p ht=추가 머리 문구를 입력하십시오  [ENTER] :

 

if "%mn%" == "1" set pn=FX DocuCentre-IV 2060 PCL 6
if "%mn%" == "2" set pn=FX DocuCentre-IV 3060 PCL 6
if "%mn%" == "3" set pn=FX DocuCentre-IV 3065 PCL 6

 

환경변수 'pn'은 드라이버 폴더 내 FX6SGAL.inf 파일 안에서

 [FXIDPF]
 "FX DocuCentre-IV 2060 PCL 6" = DC_2060_PCL,USBPRINT\FUJI_XEROXDocuCentreD8F9
 "FX DocuCentre-IV 2060 PCL 6" = DC_2060_PCL,WSDPRINT\FUJI_XEROXDocuCentreD8F9

따옴표 빨간색을 적어 주시면 됩니다.

 

 

for /F "tokens=1,2,3" %%f in ("%pn%") do set p1=%%f&set p2=%%g&set p3=%%h

 

if "%ht%" == ""  (
 set tl=%p1% DC-IV %p3%
 ) else (
 set tl=%ht% %p1% DC-IV %p3%
)

 

 

이 부분은 하나의 드라이버에 이름이 다른 프린터명을 위한 부분인데요.

'pn' 값의 공백을 기준으로  "tokens=1,2,3" 즉, 앞에서 1~3 번째 문자만 변수 지정하라는 뜻입니다.

그러니, 'p1' 변수는 'FX', 'p2' 변수는 'DocuCentre-IV', 'p3' 변수는 '2060'이겠죠.

 

 

for /F "tokens=3" %%a in ('ver') do set o1=%%a
if not "%o1%" == "XP" for /F "tokens=1" %%b in ('echo %processor_architecture%') do set o1=%%b

 

 

이 부분은 윈도우 버전을 구분하기 위한 루틴인데요.

윈도우 XP가 아니라면, %processor_architecture% 환경변수 값을 불러 옵니다.

 

 

if "%o1%" == "AMD64" (
 set pp=%cd%\FX\DC-IV 2060,3060,3065\x64\FX6SGAL.inf
 set o2=Vista/7/8 64bit
 ) else (
 set pp=%cd%\FX\DC-IV 2060,3060,3065\FX6SGAL.inf
 set o2=Vista/7/8 32bit
)

 

if "%o1%" == "XP" set o2=XP 32bit

 

 

어차피, 윈도XP나 윈도7 32비트는 같은 드라이버를 쓰기 때문에 64비트만 구분하면 되겠죠.

처음에는 'Program Files(x86)', '%SYSWOW64%'로 구분했는데요.

이 것이 완전히 구분을 못 하더라구요.

특히, '%SYSWOW64%'는 32비트에도 존재하여 문제가 발생되더라구요.

'Program Files(x86)' 폴더는 왠지 찜찜하고...

 

 

cls
echo.
echo.
echo.
echo  프 린 터 : %pn%
echo  아 이 피 : %ip%
echo  프린터명 : %tl%
echo  프로토콜 : LPR
echo  운영체제 : Windows %o2%
echo.
echo.
echo  [ENTER] SNMP사용 : 해제
echo  [1]     SNMP사용 : 활성
echo.
set /p yn=프린터를 설치합니다 :
if "%yn%" == "1" goto FTask
if not "%yn%" == "" goto main

 

 

'SNMP사용' 여부로 드라이버를 구분하여 설치하도록 만들었는데요.

이는 토너 준비/부족 메시지로 인해 민원 출력이 안되는 문제 때문입니다.

해제를 하면 아시다싶이 토너량 정보를 가져 오지 못하고 정상으로 인식해서 민원 출력에 문제 없죠.

 

 

:FTask
echo.
echo.
echo.
echo 프린터 포트 추가 및 프린터 설치 명령을 수행합니다.
echo.

 

if "%yn%" == "1" (
 cscript //Nologo "%cd%\VBS\prnport.vbs" -a -r %ip% -h %ip% -o lpr -2e -q lp -me -y public -i 1
 ) else (
 cscript //Nologo "%cd%\VBS\prnport.vbs" -a -r %ip% -h %ip% -o lpr -2e -q lp -md -y public -i 1
)

 

 

이 부분이 포트를 추가하는 것인데요.

 -me : SNMP사용 - Enable

 -md : SNMP사용 - Disable....입니다.

prnport.vbs 파일은 윈도7 32비트를 USB 직접 링크를 걸어서 사용합니다.

저 파일이 해당 PC에 없는 경우를 위한 대비책이예요.

 

 

rundll32 printui.dll,PrintUIEntry /if /b "%tl%" /f "%pp%" /r "%ip%" /m "%pn%"

 

이 부분이 해당 포트에 드라이버를 설치하는 부분입니다.

 

 

echo.
echo.
rundll32 printui.dll,PrintUIEntry /p /n "%tl%"

 

 

이 부분은 설치한 프린터 속성 창을 표시하라는 명령입니다.

복합기의 경우, '프린터 정보 가져오기'를 해야 되니까요.

 

 

:exit

 

 

소스는 첨부했습니다.

조금만 응용하시면 하나의 배치 파일로 여러 개의 다른 이름을 가진 프린터를 설치할 수 있으실 거예요.

이 소소를 간소화하여 'INNO SETUP'과 결합하시면 원하시는 단일 파일을 만들 수 있을 겁니다.

감사합니다~~~~~~~~

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
2666 소프트웨어| PE의 USB를 Y드라이브와 OS드라이브 고정 [2] 그루터기 7096 4 06-02
2665 윈 도 우| windows 10 최근항목 끄는 방법 [1] 안드로이드 6457 3 06-01
2664 윈 도 우| 윈도우10 디팬더 완전히 끄기 [18] 슈퍼맨 16021 12 05-30
2663 윈 도 우| 빌드 10122 엑세스 사용 권한 해결방법 서로해 3141 2 05-30
2662 모 바 일| 스마트폰으로 노래방 만들기-2 [1] 고양이2 4473 3 05-30
2661 윈 도 우| 시간(날짜) 수동 변경방법이 달라졌네요. [1] 무정 3156 3 05-29
2660 모 바 일| 스마트폰으로 노래방 만들기 [5] 고양이2 5097 3 05-27
2659 윈 도 우| [해결] Windows10 설치후 Skydigital 수신카드 드라이버 [3] Razer 5342 2 05-26
2658 윈 도 우| 윈도우10 에어로 효과가 안될때...(레지첨부) [1] 그린티 5104 1 05-25
2657 윈 도 우| win10 팀색기 폴더 없애기 [10] 희망성사 6595 4 05-23
2656 하드웨어| 2014년 LG 모니터 모델 이름 규칙 [2] 폭행몬스터 7996 5 05-18
2655 윈 도 우| 부팅시 CHKDSK 가 무한 반복 될때 [2] DOS 6244 6 05-16
2654 윈 도 우| 윈도우8.1 업데이트 후 블랙 스크린 - 해결 방법 중 한가지.. [5] bangkok_시민 6360 2 05-16
2653 윈 도 우| 완전 삭제메뉴 등록하기 [2] ton3d 4495 2 05-14
2652 윈 도 우| 스윙브라우즈 포터블 만들기 2.1 버전 / swing-browser 무... 심씨 6411 2 05-10
2651 윈 도 우| 확장자별 우클릭 메뉴 [1] ton3d 5279 2 05-09
» 윈 도 우| 프린터 드라이버 자동 설치 배치 파일 [6] 제이준 7270 3 05-08
2649 윈 도 우| 확장자별 연결프로그램 강제지정(본론) [4] ton3d 5351 3 05-07
2648 윈 도 우| 확장자별 연결프로그램 강제지정(서론) ton3d 3344 1 05-07
2647 윈 도 우| [완결] NTFS Permission eraser 스크립트 [7] 빛과그림자 4419 6 05-04
XE1.11.6 Layout1.4.8