
标题: [系统相关] 用BAT如何给打印机切换黑白与彩色或全部的打印模式? [打印本页]
作者: wh123wh123 时间: 2025-4-8 03:19 标题: 用BAT如何给打印机切换黑白与彩色或全部的打印模式?
用BAT如何给打印机切换黑白与彩色或全部的打印模式?
作者: wh123wh123 时间: 2025-4-9 02:52
"rundll32 printui.dll,PrintUIEntry /y /n "["这里填写打印机名称"]" /e /q /h /m "["这里填写1或2指是否彩色或黑白"]""
请问代码正确吗?求高手指正
作者: 北极奇熊 时间: 2025-4-9 10:25
回复 2# wh123wh123
@echo off
setlocal
:: 设置变量
set PRINTER_NAME=HP LaserJet Pro MFP M428fdw
set COLOR_MODE=2
:: 1=彩色, 2=黑白 (这取决于打印机驱动)
:: 使用 WMIC 设置打印机默认属性
echo 正在设置打印机 "%PRINTER_NAME%" 的颜色模式为 %COLOR_MODE%...
:: 注意:此命令可能需要根据您的打印机驱动进行调整
wmic printer where name="%PRINTER_NAME%" call setdefaultprinter
:: 另一种方法是使用 PowerShell 设置打印机首选项
powershell -command "$printer = Get-WmiObject -Query \"SELECT * FROM Win32_Printer WHERE Name='%PRINTER_NAME%'\"; $printer.SetDefaultPrinter()"
echo 打印机设置已完成。
pause
作者: wh123wh123 时间: 2025-4-9 17:42
回复 3# 北极奇熊
wmic printer where name="%PRINTER_NAME%" call setdefaultprinter这是设置默认打印机的命令吧?如何设置打印颜色模式呢?
powershell -command "$printer = Get-WmiObject -Query \"SELECT * FROM Win32_Printer WHERE Name='%PRINTER_NAME%'\"; $printer.SetDefaultPrinter()"这个命令里哪个是修改打印颜色模式的?
作者: 北极奇熊 时间: 2025-4-10 08:38
回复 4# wh123wh123
powershell -command "$printer = Get-CimInstance -ClassName Win32_Printer -Filter \"Name='%PRINTER_NAME%'\"; $settings = $printer.GetDevMode(1); $settings.Color = 2; $printer.SetDevMode($settings)"
`$settings.Color = 2` 将颜色模式设置为黑白(通常 2 表示黑白,1 表示彩色)
`$printer.SetDevMode($settings)` 应用新的设置
作者: wh123wh123 时间: 2025-4-10 15:36
回复 5# 北极奇熊
@echo off
setlocal
set PRINTER_NAME=HP LaserJet Pro MFP M428fdw
set COLOR_MODE=2
powershell -command "$printer = Get-CimInstance -ClassName Win32_Printer -Filter \"Name='%PRINTER_NAME%'\"; $settings = $printer.GetDevMode(1); $settings.Color = %COLOR_MODE%; $printer.SetDevMode($settings)"
echo 打印机设置已完成。
pause
完整代码是这样吗?如果有不对的地方期待老师修正一下,另外问问这个可以通用吗?
作者: wh123wh123 时间: 2025-4-10 16:19
回复 5# 北极奇熊
无法将“Get-CimInstance”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请
检查名称的拼写,如果包括路径,请确保路径正确,然后重试。
所在位置 行:1 字符: 27
+ $printer = Get-CimInstance <<<< -ClassName Win32_Printer -Filter "Name='Cano
n TS3300 series'"; $settings = $printer.GetDevMode(1); $settings.Color = 4; $pr
inter.SetDevMode($settings)
+ CategoryInfo : ObjectNotFound: (Get-CimInstance:String) [], Com
mandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
不能对值为空的表达式调用方法。
所在位置 行:1 字符: 122
+ $printer = Get-CimInstance -ClassName Win32_Printer -Filter "Name='Canon TS33
00 series'"; $settings = $printer.GetDevMode <<<< (1); $settings.Color = 4; $pr
inter.SetDevMode($settings)
+ CategoryInfo : InvalidOperation: (GetDevMode:String) [], Runtim
eException
+ FullyQualifiedErrorId : InvokeMethodOnNull
在此对象上找不到属性“Color”;请确保该属性存在且可设置。
所在位置 行:1 字符: 137
+ $printer = Get-CimInstance -ClassName Win32_Printer -Filter "Name='Canon TS33
00 series'"; $settings = $printer.GetDevMode(1); $settings. <<<< Color = 4; $pr
inter.SetDevMode($settings)
+ CategoryInfo : InvalidOperation: (Color:String) [], RuntimeExce
ption
+ FullyQualifiedErrorId : PropertyNotFound
不能对值为空的表达式调用方法。
所在位置 行:1 字符: 167
+ $printer = Get-CimInstance -ClassName Win32_Printer -Filter "Name='Canon TS33
00 series'"; $settings = $printer.GetDevMode(1); $settings.Color = 4; $printer.
SetDevMode <<<< ($settings)
+ CategoryInfo : InvalidOperation: (SetDevMode:String) [], Runtim
eException
+ FullyQualifiedErrorId : InvokeMethodOnNull
打印机设置已完成。
请按任意键继续. . .
作者: 北极奇熊 时间: 2025-4-11 09:25
- @echo off
- :: Use ASCII characters only
- setlocal
-
- :: Set printer name and color mode
- set PRINTER_NAME=HP LaserJet Pro MFP M428fdw
- set COLOR_MODE=2
- :: 1=Color, 2=Black and White (depends on printer driver)
-
- echo Setting printer "%PRINTER_NAME%" color mode to %COLOR_MODE%...
-
- :: Use Get-WmiObject instead of Get-CimInstance
- powershell -command "$printer = Get-WmiObject -Class Win32_Printer -Filter \"Name='%PRINTER_NAME%'\"; if($printer) { $settings = $printer.GetDevMode(1); if($settings) { $settings.Color = %COLOR_MODE%; $printer.SetDevMode($settings); Write-Host 'Settings applied successfully!' } }"
-
- echo Printer settings completed.
- pause
复制代码
试试这个
作者: wh123wh123 时间: 2025-4-11 10:53
回复 8# 北极奇熊
Setting printer "Canon TS3300 series" color mode to 2...
方法调用失败,因为 [System.Management.ManagementObject#root\cimv2\Win32_Printer
] 不包含名为“GetDevMode”的方法。
所在位置 行:1 字符: 131
+ $printer = Get-WmiObject -Class Win32_Printer -Filter "Name='Canon TS3300 ser
ies'"; if($printer) { $settings = $printer.GetDevMode <<<< (1); if($settings) {
$settings.Color = 2; $printer.SetDevMode($settings); Write-Host 'Settings appl
ied successfully!' } }
+ CategoryInfo : InvalidOperation: (GetDevMode:String) [], Runtim
eException
+ FullyQualifiedErrorId : MethodNotFound
Printer settings completed.
请按任意键继续. . .
是佳能3380打印机
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |