.NET下开发的WindowsService通常是采用命令行的方式进行安装,即通过C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>InstallUtil.exe 这个可执行文件安装。如:

这种方式安装比较繁琐,安装不同的WindowsService需要每次执行类似上面的不同的安装命令。可以将命令安装过程写成一个批处理脚本进行安装。

  将以下代码保存为.bat文件,将该文件放到安装目录下【包含exe文件的文件夹】,以管理员身份运行该bat文件,即可以安装WindowsService。该脚本运行后能够自动扫描当前目录下的要安装的exe文件,避免不同windows服务进行安装还需要修改要要安装的文件名称,同时该批处理脚本还支持卸载操作,对windows服务要运行的Framework版本也可以进行选择。基本可以做到不同环境不同服务下的一键安装。

@echo off
set netver4=C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
set netver2=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exeecho 请选择要进行的操作代码,以回车结束:
echo 安装服务[1]
echo 卸载服务[2]
set /p oper=echo 请选择.NET Framework版本,以回车结束:
echo .NET Framework 2[2]
echo .NET Framework 4[4]
set /p ver=cd %~dp0
for /f "delims=" %%i in ('dir %~dp0 /b/a-d/s ^| findstr "[^.vshost].exe$"') do (
set exefile=%%i)
echo -------------------------查找到要安装/卸载的exe文件---------------------------------
echo %exefile%echo 确认继续操作?[y/n]:
set /p confirm=
if /i "%confirm%"=="y" goto o
if /i "%confirm%"=="n" goto c:c
echo 退出安装
goto:eofset insmsg=-------------------开始安装-------------------------------
set uninsmsg=-------------------开始卸载-------------------------------:o
if /i "%oper%"=="2" goto u
if /i "%oper%"=="1" goto a:u
if /i "%ver%"=="2"  goto u_2
if /i "%ver%"=="4" goto u_4:u_2
echo %insmsg%
%netver2% %exefile% /u
goto main:u_4
echo %insmsg%
%netver4% %exefile% /ugoto main:a
if /i "%ver%"=="2"  goto a_2
if /i "%ver%"=="4" goto a_4:a_2
echo %insmsg%
%netver2% %exefile%
goto main:a_4
echo %insmsg%
%netver4% %exefile%
goto main:main
echo ======================操作完成============================
pause  

需要注意的是,对于InstallUtil.exe文件的路径,不同电脑可能放置位置不同,只需要修改上面的这两行代码即可:

set netver4=C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
set netver2=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe

转载于:https://www.cnblogs.com/gmplayer/p/3220756.html

.NET下安装卸载WindowsService批处理脚本相关推荐

  1. Linux下安装 卸载mysql57 msyql80

    date: 2018-08-17 13:32 一 Linux下 yum命令安装msyql-8.0: yum install wget -y 1 下载msyql8 yum源 wget https://d ...

  2. 银河麒麟/ubuntu 下安装/卸载软件包命令大全

    dpkg简介 Ubuntu是基于Debian的Linux系统,而Debian系统的软件是使用APT和dpkg进行管理.dpkg是"Debian Packager"的简写,是一个底层 ...

  3. linux卸载rpm包的命令,Linux(centos)下安装卸载命令rpm,make install使用方法

    A:RPM包, 这种软件包就像windows的EXE安装文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装非常方便,在图形界面里你只需要双击就能自动安装. ==如何卸载 ...

  4. suse卸载自带java_在openSUSE 13.1下安装卸载openjdk以及Oracle JDK

    平时工作用机是openSUSE 13.1.之前作死换成Oracle JDK以后,intellj的界面变得不能看了,不想调试了于是卸载了Oracle JDK,重新安装了openjdk. [Oracle ...

  5. Linux系统下安装卸载jdk

    准备工作: 1使用Xshell连接centOS 2下载要安装的jdk,rpm类型 下面准备安装: 先创建个目录 mkdir soft 首先点击Xshell 然后把下载的rpm文件拉到soft下 运行命 ...

  6. Windows Server 2008 R2下安装卸载Oracle 11g

    一.安装前的准备工作 修改计算机名: 服务器的计算机名称对于登录到Oracle数据库非常重要!切记!!! (1) 安装好Oracle数据库后,再修改计算机名称,可能会无法启动服务,即不能在浏览器中使用 ...

  7. 快捷安装Mac系统下安装/卸载brew

    Homebrew是一个包管理器,用于在Mac上安装一些OSX上没有的UNIX工具(比如wget). 卸载: /usr/bin/ruby -e "$(curl -fsSL [https://r ...

  8. Linux下安装卸载jdk8.x版本

    文章目录 卸载虚拟机自带的JDK 下载JDK 安装JDK 查看JDK 卸载虚拟机自带的JDK 注意:如果你的虚拟机是最小化安装不需要执行此步骤. 如下命令直接粘贴执行即可,如果没有权限,请加sudo ...

  9. linux下安装卸载jdk

    卸载 java -version(判断jdk是否安装,显示版本号等信息,说明已经安装) which java 查询下jdk的路径 [外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片 ...

最新文章

  1. 大模型技术实践路线图出炉,唐杰牵头,近百位智源、清华、北大、MILA等顶尖研究者联合推出...
  2. vm 软件现在地址加速版
  3. virtual hust 2013.6.23 数学杂题基础题目 M - Quotient Polynomial
  4. Android获取网速的方法
  5. 科大星云诗社动态20210520
  6. The Hystrix timeout of XXms for the command XX-XX is set lower than the combination of the
  7. CodeForces - 993C Careful Maneuvering(几何+暴力+状态压缩)
  8. 力扣打家劫舍系列总结
  9. Java面试知识(持续更新)
  10. C++文件读写 ifstream ofstream 完成复制文件功能
  11. hbase java client 简介_hbase Java client(Release 1.0)
  12. 南阳oj-----找球号(一)(set)
  13. Python新闻网站项目-9.Django前端HTML功能
  14. 《游戏设计、原型与开发——基于Unity与C#从构思到实现》学习笔记一
  15. c语言程序电子词典,C语言及程序设计进阶例程-14 开发一个电子词典
  16. GAN的评价指标IS和FID
  17. 路由器下一跳地址怎么判断_Tracert命令详解,路由跟踪命令tracert命令怎么用?...
  18. 英语词频统计器分词器基于Java
  19. 微信小程序项目实例Java后台的小程序求职招聘|兼职管理系统
  20. [ROS2 基础] Navigation2 导航系统介绍

热门文章

  1. 《最后生还者:第二部》文学批评
  2. 在以阶段划分的编译过程中,判断程序语句的形式是否正确属于()阶段的工作。
  3. SpringBoot最简单服务配置
  4. 强制关闭虚拟机后问题+解决
  5. 异常-自定义异常 和 throw和throws的区别
  6. 基于IPv6数据包分析
  7. 随手记录自动化常用的一些事情
  8. Eclipse开发过程中个VM Arguments的设置
  9. 360全景图three.js
  10. !!从中位数市盈率看目前市场位置