标题: [系统相关] 高手支招, 使用批处理修改非默认打印机名称 [打印本页]
作者: 5i365 时间: 2021-11-2 15:44 标题: 高手支招, 使用批处理修改非默认打印机名称
本帖最后由 5i365 于 2021-11-2 15:47 编辑
学校的电脑上有一台默认的打印机, 两台非默认的打印机,
我想把两台非默认的打印机改名字, 名字格式为
第一台非默认的打印机新名字为:
计算机名_2_打印机名
第二台非默认的打印机新名字为:
计算机名_3_打印机名
以此类推
自己组合最下面的两段代码为一代码如下, 执行时总是报错, 但单独的两段代码,都可以执行成功, 请高手指点错误所在, 非常感谢!
set n=2
for /f "skip=2 tokens=1,2* delims=," %%i in ('wmic printer where "default=false" get name /format:csv 2^>nul') do (
set pr_name=%%j
set newpr_name=%COMPUTERNAME%_%n%_%%j
Cscript C:\Windows\System32\Printing_Admin_Scripts\zh-CN\prncnfg.vbs -z "%newpr_name%" -x -p "pr_name"
set /a n+1
)
----------------------------------------------------------------百度没有找到相关代码, 通过谷歌找了如下代码
1.获取所有非默认打印机代码:
set n=2
for /f "skip=2 tokens=1,2* delims=," %%i in ('wmic printer where "default=false" get name /format:csv 2^>nul') do (
echo %%j
set pr_name=%%j
set newpr_name=%COMPUTERNAME%_%n%_%%j
set /a n+1
)
2.更改打印机名代码:
Cscript C:\Windows\System32\Printing_Admin_Scripts\zh-CN\prncnfg.vbs -z "%newpr_name%" -x -p "pr_name"
作者: Batcher 时间: 2021-11-2 16:01
回复 1# 5i365 - @echo off
- setlocal enabledelayedexpansion
- set n=2
- for /f "skip=2 tokens=1,2* delims=," %%i in ('wmic printer where "default=false" get name /format:csv 2^>nul') do (
- echo %%j
- set pr_name=%%j
- set newpr_name=%COMPUTERNAME%_!n!_%%j
- echo !pr_name!
- echo !newpr_name!
- cscript C:\Windows\System32\Printing_Admin_Scripts\zh-CN\prncnfg.vbs -z "!newpr_name!" -x -p "!pr_name!"
- set /a n+=1
- )
复制代码
请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
作者: 5i365 时间: 2021-11-2 17:02
回复 2# Batcher
hp LaserJet 1010 HB
hp LaserJet 1010 HB
WIN7_2_hp LaserJet 1010 HB
Microsoft (R) Windows Script Host Version 5.8
版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。
错误 0x8004103A 无效的对象路径 010 HB
Adobe PDF
Adobe PDF
WIN7_2_Adobe PDF
Microsoft (R) Windows Script Host Version 5.8
版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。
错误 0x8004103A 无效的对象路径
请按任意键继续. . .
作者: 5i365 时间: 2021-11-2 17:02
本帖最后由 5i365 于 2021-11-2 17:04 编辑
前三行显示是正确的, 后面就无法执行了
另外, n的值没变
作者: Batcher 时间: 2021-11-2 17:37
回复 4# 5i365
2楼第11行代码已更新,你再试试n的值是否有变化。
作者: 5i365 时间: 2021-11-2 18:24
回复 5# Batcher
感谢指点, 目前还是报无效路径的错误
作者: lancer 时间: 2021-11-3 10:37
wmic在win10中好像被弃用了
作者: Batcher 时间: 2021-11-3 10:43
回复 10# lancer
你用的哪个版本的Win10?或者从什么地方看到了官方消息吗,请分享一下。
作者: qixiaobin0715 时间: 2021-11-3 10:55
好像是有这么回事。- Microsoft Windows [版本 10.0.19042.1288]
- (c) Microsoft Corporation。保留所有权利。
-
- C:\Users\Administrator>wmic /?
-
- WMIC 已弃用。
-
- [全局开关] <命令>
-
- 可以使用以下全局开关:
- /NAMESPACE 别名在其上操作的命名空间的路径。
- /ROLE 包含别名定义的角色的路径。
- /NODE 别名在其上操作的服务器。
- /IMPLEVEL 客户端模拟级别。
- /AUTHLEVEL 客户端身份验证级别。
- /LOCALE 客户端应使用的语言 ID。
- /PRIVILEGES 启用或禁用所有权限。
- /TRACE 将调试信息输出到 stderr。
- /RECORD 记录所有输入命令和输出内容。
- /INTERACTIVE 设置或重置交互模式。
- /FAILFAST 设置或重置 FailFast 模式。
- /USER 会话期间要使用的用户。
- /PASSWORD 登录会话时要使用的密码。
- /OUTPUT 指定输出重定向模式。
- /APPEND 指定输出重定向模式。
- /AGGREGATE 设置或重置聚合模式。
- /AUTHORITY 指定连接的 <授权类型>。
- /?[:<BRIEF|FULL>] 用法信息。
-
- 有关特定全局开关的详细信息,请键入: switch-name /?
复制代码
作者: Batcher 时间: 2021-11-3 11:24
回复 12# qixiaobin0715
英文版本是:
WMIC is deprecated
通常理解为当前版本还能使用,但是不推荐作为首选方案,因为未来可能会被弃用。
作者: qixiaobin0715 时间: 2021-11-3 11:31
微软有时候中文翻译真的很蹩脚。
作者: lancer 时间: 2021-11-3 14:19
回复 10# Batcher
我现在用的win10最新版,在cmd中输入wmic提示该命令已弃用,叫我换成Switch什么的
作者: qixiaobin0715 时间: 2021-11-3 14:26
微软翻译有问题。
在这里WMIC is deprecated中的deprecated应当翻译为“不建议使用的,过时的”,才比较贴切。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |