標籤

BAT (38) shell (34) Virtual Machine (33) Xubuntu (29) acfs (25) PHP (24) CentOS (21) Virtul Box (20) 編輯器 (17) 資料庫 (15) lubuntu (13) windows (13) CPP (12) ubuntu (12) chrome (11) laravel (10) Docker (9) Python (9) 5A88 (7) VMware (6) 資料結構 (6) Javascript (5) Node (5) Proxmox VE (5) 公告系統 (5) 程式積木 (5) Android Studio (4) ANN (3) OB2D2016x64 (3) Xoops (3) clonezilla (3) samba (3) 公文 (3) 其他 (3) 硬體 (3) API (2) Android (2) AppInvent2 (2) Html (2) Hyper-V (2) Nas (2) botnet (2) mbot (2) swift (2) wordpress (2) 樣板 (2) 防火牆 (2) AD的應用 (1) Ansible (1) Arduino (1) CSS (1) GitLab (1) HA Proxy (1) LegoEV3 (1) PowerShell (1) Scratch (1) VM (1) XenServer (1) kotlin (1) linuxmint (1) lxc (1)

2019年9月7日 星期六

利用 BAT 一鍵完成印表機安裝驅動


使用說明:
20200825
感恩頂番國小李清展老師的協助。
有的印表機需要設定列印喜好設定,希望能夠在安裝過程中設定。
現在讓其在安裝過程中出現,而不要安裝完再自行找路徑做設定。
其中的語句如下:

rundll32 printui.dll,PrintUIEntry /e /n %printer_name2%_%printer_name%


BAT範例下載,解壓密碼demo1234
@echo off
set printer_ip=172.20.3.94
echo "要連接印表機用的ip為%printer_ip%"
set printer_name2="專任室印表機"
echo "機器顯示的名稱為%printer_name2%"
set printer_86_driver="%~dp0AutoInstall\x86\KOAYTJ__.INF"
REM "x86的驅動程式%printer_86_driver%"
set printer_64_driver="%~dp0AutoInstall\x64\KOAYTJ__.INF"
REM "x64的驅動程式%printer_64_driver%"
set printer_name="KONICA MINOLTA C554 PCL Mono"
echo "印表機型號%printer_name%"

if "%PROCESSOR_ARCHITECTURE%" == "x86" goto x86
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" goto x64
rem 針對win7有32跟64位元的判斷

:x86
echo "作業系統為x86"
echo "x86的驅動程式%printer_86_driver%"
C:\Windows\system32\cscript.exe C:\Windows\system32\Printing_Admin_Scripts\zh-TW\prnport.vbs -a -r IP_%printer_ip% -h %printer_ip% -o raw -n 9100
REM 新增ip連接port,已經存在也沒差
rundll32 printui.dll,PrintUIEntry /if /r IP_%printer_ip% /f %printer_86_driver% /b %printer_name2%_%printer_name% /m %printer_name%
REM 新增印表機,如果已經有同樣名字的也會新增,名字後面會多(複本1)
echo 請設定印表機喜好設定
rundll32 printui.dll,PrintUIEntry /e /n %printer_name2%_%printer_name%
echo 印表機喜好設定OK
echo 列表機安裝完成...請按任意鍵結束..
pause

:x64
echo "作業系統為x64"
echo "x64的驅動程式%printer_64_driver%"
C:\Windows\system32\cscript.exe C:\Windows\system32\Printing_Admin_Scripts\zh-TW\prnport.vbs -a -r IP_%printer_ip% -h %printer_ip% -o raw -n 9100
REM 新增ip連接阜,已經存在也沒差
rundll32 printui.dll,PrintUIEntry /if /r IP_%printer_ip% /f %printer_64_driver% /b %printer_name2%_%printer_name% /m %printer_name%
REM 新增印表機,如果已經有同樣名字的也會新增,名字後面會多(複本1)
echo 請設定印表機喜好設定
rundll32 printui.dll,PrintUIEntry /e /n %printer_name2%_%printer_name%
echo 印表機喜好設定OK
echo 列表機安裝完成...請按任意鍵結束..
pause


20200811
現在再修正,將設定的部分移前。並提供範例下載。
BAT範例,解壓密碼demo1234

@echo off
set printer_ip=172.20.3.94
echo "要連接印表機用的ip為%printer_ip%"
set printer_name2="專任室印表機"
echo "機器顯示的名稱為%printer_name2%"
set printer_86_driver="%~dp0AutoInstall\x86\KOAYTJ__.INF"
REM "x86的驅動程式%printer_86_driver%"
set printer_64_driver="%~dp0AutoInstall\x64\KOAYTJ__.INF"
REM "x64的驅動程式%printer_64_driver%"
set printer_name="KONICA MINOLTA C554 PCL Mono"
echo "印表機型號%printer_name%"

if "%PROCESSOR_ARCHITECTURE%" == "x86" goto x86
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" goto x64
rem 針對win7有32跟64位元的判斷

:x86
echo "作業系統為x86"
echo "x86的驅動程式%printer_86_driver%"
C:\Windows\system32\cscript.exe C:\Windows\system32\Printing_Admin_Scripts\zh-TW\prnport.vbs -a -r IP_%printer_ip% -h %printer_ip% -o raw -n 9100
REM 新增ip連接port,已經存在也沒差
rundll32 printui.dll,PrintUIEntry /if /r IP_%printer_ip% /f %printer_86_driver% /b %printer_name2%_%printer_name% /m %printer_name%
REM 新增印表機,如果已經有同樣名字的也會新增,名字後面會多(複本1)
echo 列表機安裝完成...請按任意鍵結束..
pause

:x64
echo "作業系統為x64"
echo "x64的驅動程式%printer_64_driver%"
C:\Windows\system32\cscript.exe C:\Windows\system32\Printing_Admin_Scripts\zh-TW\prnport.vbs -a -r IP_%printer_ip% -h %printer_ip% -o raw -n 9100
REM 新增ip連接阜,已經存在也沒差
rundll32 printui.dll,PrintUIEntry /if /r IP_%printer_ip% /f %printer_64_driver% /b %printer_name2%_%printer_name% /m %printer_name%
REM 新增印表機,如果已經有同樣名字的也會新增,名字後面會多(複本1)
echo 列表機安裝完成...請按任意鍵結束..
pause


20200811以前的文章

終於成功了,可以一鍵完成建立印表機。
可建立專任室印表機.BAT,其內容如下:
紅色的部分需要依實際情況做修改,即可:

@echo off
set printer_ip=172.20.3.94
rem 要連接印表機用的ip
set printer_name2="專任室印表機"
rem 機器顯示的名稱

if "%PROCESSOR_ARCHITECTURE%" == "x86" goto x86
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" goto x64
rem 針對win7有32跟64位元的判斷

:x86
echo "x86"
set printer_driver="%USERPROFILE%\Desktop\AutoInstall\AutoInstall\x86\KOAYTJ__.INF"
rem %USERPROFILE%\Desktop\AutoInstall\AutoInstall\x86\KOAYTJ__.INF 為桌面
set printer_name="KONICA MINOLTA C554 PCL Mono"
rem KOAYTJ__.INF 內顯示的印表機名稱
rem driver放在同目錄下,路徑用.\來作相對路徑
C:\Windows\system32\cscript.exe C:\Windows\system32\Printing_Admin_Scripts\zh-TW\prnport.vbs -a -r IP_%printer_ip% -h %printer_ip% -o raw -n 9100
rem 新增ip連接port,已經存在也沒差
rundll32 printui.dll,PrintUIEntry /if /r IP_%printer_ip% /f %printer_driver% /b %printer_name2%_%printer_name% /m %printer_name%
rem 新增印表機,如果已經有同樣名字的也會新增,名字後面會多(複本1)
echo 列表機安裝完成...請按任意鍵結束..
pause

:x64
echo "x64"
set printer_driver="%USERPROFILE%\Desktop\AutoInstall\AutoInstall\x64\KOAYTJ__.INF"
rem %USERPROFILE%\Desktop\AutoInstall\AutoInstall\x86\KOAYTJ__.INF 為桌面
set printer_name="KONICA MINOLTA C554 PCL Mono"
rem KOAYTJ__.INF 內顯示的印表機名稱
rem driver放在同目錄下,路徑用.\來作相對路徑
C:\Windows\system32\cscript.exe C:\Windows\system32\Printing_Admin_Scripts\zh-TW\prnport.vbs -a -r IP_%printer_ip% -h %printer_ip% -o raw -n 9100
rem 新增ip連接阜,已經存在也沒差
rundll32 printui.dll,PrintUIEntry /if /r IP_%printer_ip% /f %printer_driver% /b %printer_name2%_%printer_name% /m %printer_name%
rem 新增印表機,如果已經有同樣名字的也會新增,名字後面會多(複本1)
echo 列表機安裝完成...請按任意鍵結束..
pause

在學校環境下進行測試 windows 7 與 windows 10 版本,可以成功運作。



後續反應:限制只能在桌面,在桌面解壓縮。可否在任何地方解壓縮,都可以安裝。
那就需要 bat知道所在檔案的路徑
getPath.bat 其內容為
echo off
setlocal EnableDelayedExpansion
echo 路徑1.1:!cd!
pause
@echo off
echo 路徑1.2:%cd%
pause
@echo off
echo 路徑1.3:%~dp0
pause
出現的結果為

那我們用%~dp0來修改

@echo off
set printer_ip=172.20.3.94
rem 要連接印表機用的ip
set printer_name2="專任室印表機"
rem 機器顯示的名稱

if "%PROCESSOR_ARCHITECTURE%" == "x86" goto x86
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" goto x64
rem 針對win7有32跟64位元的判斷

:x86
echo "x86"
set printer_driver="%~dp0AutoInstall\x86\KOAYTJ__.INF"
echo 驅動程式所在路徑為 %printer_driver%
set printer_name="KONICA MINOLTA C554 PCL Mono"
rem driver放在同目錄下,路徑用.\來作相對路徑
C:\Windows\system32\cscript.exe C:\Windows\system32\Printing_Admin_Scripts\zh-TW\prnport.vbs -a -r IP_%printer_ip% -h %printer_ip% -o raw -n 9100
rem 新增ip連接阜,已經存在也沒差
rundll32 printui.dll,PrintUIEntry /if /r IP_%printer_ip% /f %printer_driver% /b %printer_name2%_%printer_name% /m %printer_name%
rem 新增印表機,如果已經有同樣名字的也會新增,名字後面會多(複本1)
echo 列表機安裝完成...請按任意鍵結束..
pause

:x64
echo "x64"
set printer_driver="%~dp0AutoInstall\x64\KOAYTJ__.INF"
echo 驅動程式所在路徑為 %printer_driver%
set printer_name="KONICA MINOLTA C554 PCL Mono"
rem driver放在同目錄下,路徑用.\來作相對路徑
C:\Windows\system32\cscript.exe C:\Windows\system32\Printing_Admin_Scripts\zh-TW\prnport.vbs -a -r IP_%printer_ip% -h %printer_ip% -o raw -n 9100
rem 新增ip連接阜,已經存在也沒差
rundll32 printui.dll,PrintUIEntry /if /r IP_%printer_ip% /f %printer_driver% /b %printer_name2%_%printer_name% /m %printer_name%
rem 新增印表機,如果已經有同樣名字的也會新增,名字後面會多(複本1)
echo 列表機安裝完成...請按任意鍵結束..
pause


資料來源:
1.(教學)windows批次檔安裝設定印表機(bat.自動化.驅動.網路)
2.bat安裝印表機 win7
3.自動安裝網路印表機
4.自動安裝印表機
5.在cmd/bat腳本中獲取當前腳本文件所在目錄
6.windows 批處理文件bat中當前目錄。

2 則留言:

  1. 感謝~ 非常受用

    印表機名稱如果出現亂碼, 可以在程式碼加上 "chcp 65001"

    就可以解決

    回覆刪除
  2. 謝謝老師,依照您的檔案,我也修改完成,符合我學校使用。感謝老師。

    回覆刪除

在 Windows 10 x64 1909版,使用BAT快速安裝公文系統與人事服務網(自然人憑證)版

相關內容移往 https://skjhcreator.blogspot.com/2021/02/windows-10-x64-1909bat.html