강좌 / 팁

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

2015.05.08 19:11

제이준 조회:7255 추천: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 - - -
252 윈 도 우| UEFT GPT 디스크 형식으로 윈도우 vhdx 자식 2개 운영하기 [3] ANT-MAN 4201 4 12-22
251 윈 도 우| Easy Sysprep 3 봉인 중.. 봉인 실패가 발생하는 경우.. [1] 은주얌 3943 4 12-21
250 소프트웨어| wandrv 2015년 이후 버전들 오류날때.. [3] GuitaristA 3042 3 12-13
249 윈 도 우| Windows 10에서 부팅 직후에 Wi-Fi를 사용할 수 없을 때 긴... [4] 프로파간다 4874 5 12-05
248 하드웨어| 내장 SD카드 인식불가 문제해결 [2] 무정 5944 3 10-17
247 윈 도 우| PowerShell을 이용하여 지정 업데이트 숨기기(업데이트 방지) [6] 달마s 4988 4 10-14
246 윈 도 우| 구형 삼성노트북(rv400~700씨리즈) 윈10 설치 설공 ㅠㅠ [27] 쌈빡이 10536 4 09-14
245 윈 도 우| 100 시리즈 메인보드(스카이레이크)에서 윈도우7 설치 [2] 사이버짱 9632 3 08-22
244 윈 도 우| [수정] : 금융/쇼핑 전용 3GB 하이퍼뱅크 [41] 크림슨 6552 8 08-13
243 모 바 일| 스마트폰 루팅없이 통신사앱 제거하기 (debloater) 삭제앱... [7] 베이쥐 9350 4 08-07
242 윈 도 우| (내용추가) 윈도우 10 자동 업데이트 끄기 & 자동 재시... [5] 슈퍼맨 13828 6 07-28
241 윈 도 우| 마소엣지 다운로드 위치변경방법 [4] MOOTS 7072 5 07-26
240 윈 도 우| 윈도우10, 니 맘대로 업데이트 하지 말란 말야! [13] 크림슨 10313 3 07-20
239 소프트웨어| Autoruns 사용법 - 시스템 부팅 관리, 시작프로그램 [5] 그루터기 6093 10 06-20
238 윈 도 우| [해결] Windows10 설치후 Skydigital 수신카드 드라이버 [3] Razer 5317 2 05-26
237 윈 도 우| 부팅시 CHKDSK 가 무한 반복 될때 [2] DOS 6237 6 05-16
» 윈 도 우| 프린터 드라이버 자동 설치 배치 파일 [6] 제이준 7255 3 05-08
235 윈 도 우| 통합 이미지의 WIMBOOT 제작 설치 용량 줄이기방법 [4] 보[boram]람 4963 1 05-02
234 윈 도 우| sysprep 으로 윈도우7 만능 설치본 이미지 만들기 [13] gooddew 14159 10 04-19
233 윈 도 우| WIMBoot 제대로 설치하기 (초보자용) [16] FLP386 11921 12 04-07
XE1.11.6 Layout1.4.8