第一種
@echo off
set p_ip=10.30.0.7
// 要連接印表機用的ip
set p_name2="Alice"
// 機器顯示的名稱...可自訂
if "%PROCESSOR_ARCHITECTURE%" == "x86" goto x86
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" goto x64
// 針對win7有32跟64位元的判斷
:x86
echo "x86"
set p_driver=".\F:\HP LaserJet 5200\PCL6\hpc520xc.inf"
set p_name="HP LaserJet 5200 PCL 6"
// driver放在同目錄下,路徑用.\來作相對路徑
goto pnew
:x64
echo "x64"
set p_driver=".\F:\HP LaserJet 5200\PCL6\hpc520xc.inf"
set p_name="HP LaserJet 5200 PCL 6"
goto pnew
:pnew
Cscript prnportc.vbs -a -r IP_%p_ip% -h %p_ip% -o raw -n 9100
// 新增ip連接阜,已經存在也沒差
rundll32 printui.dll,PrintUIEntry /if /r IP_%p_ip% /f %p_driver% /b %p_name%_%p_name2% /m %p_name%
// 新增印表機,如果已經有同樣名字的也會新增,名字後面會多(複本1)
echo 列表機安裝完成...請按任意鍵結束..
pause
第二種
%windir%\system32\cscript.exe %windir%\system32\prnport.vbs -a -r IP_04 -h 10.30.2.3 -o raw > NUL
rundll32 printui.dll,PrintUIEntry /if /b "hp" /f hpc5550c.INF /r "IP_04" /m "HP Color LaserJet 5550 PCL 6"
rundll32 printui.dll,PrintUIEntry /y /n "hp"
目前寫這兩種都會出現問題,兩者的驅動都是放在隨身碟f的第一目錄下f:\因工作需求常會安裝網路印表機,所以想寫個批次來將檔案放置在隨身碟,大量的驅動種類,需要哪種僅需改IP即可,大多都是使用WIN7 32 or 64 目前主公司是有printer server所以比較好撰寫bat,但分公司無架設print server所以需要撰寫可在隨身碟上帶著走的bat,請各位高手指教或是有其他方法可以分享給我,感激不盡~
64位元是這樣
set ip="10.30.0.7"
set p_name2="Alice"
set driver="%~dp0\hpc5550c.INF"
set name="HP Color LaserJet 5550 PCL 6"
%windir%\SysWOW64\cscript.exe %windir%\SysWOW64\Printing_Admin_Scripts\zh-TW\prnport.vbs -a -r %ip% -h %ip% -o raw -n 9100
rundll32 printui.dll,PrintUIEntry /if /b %p_name2% /f %driver% /r %ip% /m %name%
差別在於system32和SysWOW64
都會出現0x800f014無法使用~我bat和驅動都放同個目錄裡
驅動確定對的嗎,有手動裝過?
因為這個語法沒有先建立 TCPIP 端口就直接指派端口類型,當然無法建立TCPIP端口啊
驅動確定是對的有手動安裝過,新增端口的部分語法是下方這樣嘛?
:pnew
Cscript prnportc.vbs -a -r IP_%p_ip% -h %p_ip% -o raw -n 9100
// 新增ip連接阜
少了路徑會無法動作
cscript %WINDIR%\System32\Printing_Admin_Scripts\zh-TW\Prnport.vbs -a -r IP_%p_ip% -h %p_ip% -o raw -n 9100