강좌 / 팁

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

2015.05.08 19:11

제이준 조회:7307 추천: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 - - -
2661 기 타| 단추 모양의 전지에 대해 정리해 봅니다. [5] asklee 4997 7 06-28
2660 하드웨어| 수은 건전지 점검하기 [16] gooddew 9066 5 06-25
2659 윈 도 우| 127.0.0.1:8080/proxy.pac 때문에 인터넷 연결이 안될 떄 [5] 창과방패 4644 6 06-25
2658 윈 도 우| 윈도우10, 관리자계정으로 설정 창 띄우기 [3] 크림슨 8688 4 06-22
2657 소프트웨어| 제어판에 표시되지 않은 설치 프로그램 등록하기. [5] 구들목 4061 6 06-22
2656 윈 도 우| 블루투스 메뉴에 파일 보내기 받기 reg [1] 내찬RB 4206 6 06-22
2655 윈 도 우| 느려진 컴퓨터 빠르게 하는 방법 [15] gooddew 14677 15 06-21
2654 소프트웨어| Autoruns 사용법 - 시스템 부팅 관리, 시작프로그램 [5] 그루터기 6122 10 06-20
2653 윈 도 우| 윈도우10 스파르탄(엣지) 안되는 사이트 강제 사용하기 [6] 솔트 9856 5 06-11
2652 윈 도 우| Windows 10 무료 업그레이드 프로모션에 대한 진실 [2] 프로파간다 12533 2 06-07
2651 윈 도 우| 윈도우 10 프리뷰 다국어 링크 빨리 따기 [3] Callisto 5140 3 06-06
2650 서버 / IT| PE를 이용한 윈도우 네트워크 설치 [16] gooddew 7992 10 06-04
2649 윈 도 우| 바탕화면 아이콘 - 크기와 간격에 관한 강좌 및 프로그램 [8] ton3d 4524 7 06-02
2648 소프트웨어| PE의 USB를 Y드라이브와 OS드라이브 고정 [2] 그루터기 7104 4 06-02
2647 윈 도 우| windows 10 최근항목 끄는 방법 [1] 안드로이드 6460 3 06-01
2646 윈 도 우| 윈도우10 디팬더 완전히 끄기 [18] 슈퍼맨 16050 12 05-30
2645 윈 도 우| 빌드 10122 엑세스 사용 권한 해결방법 서로해 3145 2 05-30
2644 모 바 일| 스마트폰으로 노래방 만들기-2 [1] 고양이2 4475 3 05-30
2643 윈 도 우| 시간(날짜) 수동 변경방법이 달라졌네요. [1] 무정 3159 3 05-29
2642 모 바 일| 스마트폰으로 노래방 만들기 [5] 고양이2 5103 3 05-27
XE1.11.6 Layout1.4.8