jjzjj

dos批处理脚本自动添加网络IP打印机-简单亲测可用

菜鸟成长ing 2023-10-01 原文

dos批处理脚本自动添加网络IP打印机-简单亲测可用

前言:
网上找的批处理添加方法复杂且需要导入注册表。
花了一天时间研究出来的简单、快速的批处理命令。
win10亲测可用。

核心代码:

1. 添加驱动

pnputil.exe -i -a "inf文件路径"
powershell -Command "& {Add-PrinterDriver -Name '驱动名'}"

备注:注意驱动名是inf 文件中的名词,如下图 “EPSON Universal Print Driver”就是驱动名

2.添加端口

powershell -Command "& {Add-PrinterPort -Name '端口名%' -PrinterHostAddress '打印机IP'}"

3.添加打印机

powershell -Command "& {Add-Printer -Name 打印机名 -DriverName '驱动名' -PortName 端口名}"

4.删除打印机

powershell -Command "& {remove-printer -name 打印机名}"

亲测

环境

网络打印机:EPSON C8690a
打印机IP:10.0.1.56
添加后的打印机名:FaWuQu-C8690
添加电脑:win10 64位
驱动:官方驱动64位
驱动路径:D盘

备注:如需复用以下代码仅需更改 “修改区” 的变量即可。
备注2:请将代码保存为 “ANSI” 编码的bat文件

亲测代码

@echo off
rem 自动提权以管理员方式运行
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' EQU '5' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"

rem 提示
echo.
echo.
echo ------------------------------------------------
color 0C
echo 正在添加打印机。。。。
echo 1. 如有弹窗点确定或允许。
echo 2. 安装完成后才可继续安装其它打印机。
echo ------------------------------------------------
TIMEOUT /T 5
color 07


rem 修改区
set print_name=FaWuQu-C8690
set print_IP=10.0.1.56
set print_drive_dir=d:\EPSON WF-C8690aDrive\E_JFB0DE.INF
set print_drive_name=EPSON Universal Print Driver
set print_area=法务区

rem 重启服务
net stop spooler>nul
net start spooler>nul


rem 删除重名打印机
powershell -Command "& {remove-printer -name %print_name%}"

cls

rem 添加驱动
C:\Windows\System32\pnputil.exe -i -a "%print_drive_dir%"
C:\Windows\System32\pnputil.exe -i -a "%print_drive_dir2%"
powershell -Command "& {Add-PrinterDriver -Name '%print_drive_name%'}"

rem 添加端口
powershell -Command "& {Add-PrinterPort -Name 'IP_%print_IP%' -PrinterHostAddress '%print_IP%'}"

rem 添加打印机
powershell -Command "& {Add-Printer -Name %print_name% -DriverName '%print_drive_name%' -PortName IP_%print_IP%}"

rem 其他非关键
cls

echo.
echo.
echo.
echo ------------------------------------------------------------------
echo 打印机名:	%print_name%
echo 位置:		%print_area%
echo.
echo.
echo 请选择该打印机进行打印,如有问题请联系管理员。
echo ------------------------------------------------------------------

pause

效果图




有关dos批处理脚本自动添加网络IP打印机-简单亲测可用的更多相关文章

  1. ruby - 如何指定 Rack 处理程序 - 2

    Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

  2. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  3. ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用? - 2

    我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel

  4. ruby - 从 Ruby 中的主机名获取 IP 地址 - 2

    我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge

  5. Ruby-vips 图像处理库。有什么好的使用示例吗? - 2

    我对图像处理完全陌生。我对JPEG内部是什么以及它是如何工作一无所知。我想知道,是否可以在某处找到执行以下简单操作的ruby​​代码:打开jpeg文件。遍历每个像素并将其颜色设置为fx绿色。将结果写入另一个文件。我对如何使用ruby​​-vips库实现这一点特别感兴趣https://github.com/ender672/ruby-vips我的目标-学习如何使用ruby​​-vips执行基本的图像处理操作(Gamma校正、亮度、色调……)任何指向比“helloworld”更复杂的工作示例的链接——比如ruby​​-vips的github页面上的链接,我们将不胜感激!如果有ruby​​-

  6. ruby - Faye WebSocket,关闭处理程序被触发后重新连接到套接字 - 2

    我有一个super简单的脚本,它几乎包含了FayeWebSocketGitHub页面上用于处理关闭连接的内容:ws=Faye::WebSocket::Client.new(url,nil,:headers=>headers)ws.on:opendo|event|p[:open]#sendpingcommand#sendtestcommand#ws.send({command:'test'}.to_json)endws.on:messagedo|event|#hereistheentrypointfordatacomingfromtheserver.pJSON.parse(event.d

  7. ruby - 如何打印 ruby​​ 对象的实例变量 - 2

    classPacketdefinitialize(name,age,number,array)@name=name@age=age@number=number@neighbors=arrayendendp1=Packet.new("n1",5,2,[1,2,3,4])putsp1.name我有上面的代码,但是每当我执行puts语句时,我都会收到nameisnotamethod的错误。我不知道任何其他方式来打印p1的名称。如何打印姓名? 最佳答案 这里的问题是,虽然您拥有实例变量,但您并未使它们可访问。attr_reader:vari

  8. ruby - 如何打印出 Mechanized 存储的 cookie? - 2

    我正在使用mechanize登录网站,然后检索页面。我遇到了一些问题,我怀疑这是由于cookie中的某些值造成的。当Mechanize登录网站时,我假设它存储了cookie。如何通过Mechanize打印出存储在cookie中的所有数据? 最佳答案 代理有一个cookie方法。agent=Mechanize.newpage=agent.get("http://www.google.com/")agent.cookiesagent.cookies.to_scookie返回一个Mechanize::Cookiesobject

  9. ruby - 如何使用 Ruby HTTP::Net 处理 404 错误? - 2

    我正在尝试解析网页,但有时会收到404错误。这是我用来获取网页的代码:result=Net::HTTP::getURI.parse(URI.escape(url))如何测试result是否为404错误代码? 最佳答案 像这样重写你的代码:uri=URI.parse(url)result=Net::HTTP.start(uri.host,uri.port){|http|http.get(uri.path)}putsresult.codeputsresult.body这将打印状态码和正文。

  10. ruby-on-rails - self 在 Rails 模型中的值(value)是什么?为什么没有明显的实例方法可用? - 2

    我的rails3.1.6应用程序中有一个自定义访问器方法,它为一个属性分配一个值,即使该值不存在。my_attr属性是一个序列化的哈希,除非为空白,否则应与给定值合并指定了值,在这种情况下,它将当前值设置为空值。(添加了检查以确保值是它们应该的值,但为简洁起见被删除,因为它们不是我的问题的一部分。)我的setter定义为:defmy_attr=(new_val)cur_val=read_attribute(:my_attr)#storecurrentvalue#makesureweareworkingwithahash,andresetvalueifablankvalueisgiven

随机推荐