使用批处理设置、启动和停止服务

当电脑安装了数据库服务(如,Oracle、SQLServer)或一些web服务(如IIS,tomcat)时,系统会添加很多服务(services)项。而这些服务往往是占用很大的系统资源的。如果在平时不用的时候一直处于启动状态是对系统资源的极大浪费。所以我们就通过“管理工具”中的“服务”将所有不必要的服务停止。但是每次用到的时候或不用的时候手工去启动和停止比较麻烦。用批理来操作会方便很多。

下面介绍两种使用批处理操作来 设置、启动和停止服务的方法。 
从Windows XP开始,其自带的DOS工具中加入了一个sc.exe(Service Control)和net.exe (C:/WINDOWS/system32)的文件,恰好可以对服务的启动类型以及服务的启动或者关闭等进行操作,再利用DOS的批处理优势,就可以把上面提到的操作进行简化。

方法 一:

sc.exe常用功能:

1、更改服务的启动状态. sc config 服务名 start= 属性(demand 手动、auto 自动、disable 禁用) 设置该服务的启动形式(= 后面有个空格)
2、删除服务(否则不建议删除任何系统服务,特别是基础服务 慎用) 
3、停止或启动服务(功能上类似于net stop/start,但速度更快且能停止的服务更多)
 
具体的命令格式: 
修改服务启动类型的命令行格式为(特别注意start=后面有一个空格) 
    sc config 服务名称 start= demand(设置服务为手动启动) 
    sc config 服务名称 start= auto(设置服务为自动启动) 
 sc config 服务名称 start= disabled(设置服务为禁用)
停止/启动服务的命令行格式为 
    sc start 服务名称
 sc stop 服务名称 
注意:服务名称:可以在控制面板->管理工具->服务里面,双击对应的服务显示名来查询。 
例: 
设置远程注册表服务为手动其格式为 
sc config RemoteRegistry start= demand 
设为禁用的格式为 
sc config RemoteRegistry start= disabled 
停止服务则格式为 
sc stop RemoteRegistry

方法二:

使用net.exe功能启动或停止服务

启动/停止 服务的命令行格式为 
net start 服务名称
net stop 服务名称 
例: 
以启动和停止Oracle服务为例:由于Oracle服务非常占用系统资源,而且平时不怎么用Oracle数据库。所以我将其设为手动启动,然后每次用到Oracle时,使用批处理来启动一堆服务。
-- 开始Oracle的服务 
@echo off 
net start OracleMTSRecoveryService 
net start OracleOraHome92Agent 
net start OracleOraHome92TNSListener 
net start OracleService数据库名 
--  停止Oracle的服务 
@echo off 
net stop OracleService数据库名 
net stop OracleOraHome92TNSListener 
net stop OracleOraHome92Agent 
net stop OracleMTSRecoveryService
启动方法: 
方法1.保存之后便可以直接通过双击文件即可启动或者关闭服务 
方法2.设置环境变量 
在环境变量中的系统变量中,在PATH后面添加批处理文件的路径,不要忘记用分号;和前面的环境变量隔开,然后直接在开始菜单中的运行中输入可执行相应的文件 
环境变量的作用就是告诉系统在运行中输入信息的位置而已。

注意:在vista,win7等系统有时直接运行bat文件,很多服务启动不了,会提示拒绝访问等,是因为权限问题,在运行bat文件时要以管理员身份运行即可。

net start 服务名 开启某服务

net stop 服务名 关闭某服务

注:如果服务名有空格,则用双引号括起来。另外服务名不是服务显示的名称,你要右键服务属性才能看到服务名。有时候显示的名称就是服务名。

常用一些服务的启动停止

---sqlserver 相关服务启动---
@echo.服务启动...... 
@echo off 
@sc start MSSQLSERVER 
@sc start SQLSERVERAGENT 
@sc start MSSQLServerOLAPService 
@sc start msftesql 
@sc start MsDtsServer 
@sc start SQLWriter 
@echo off 
@echo.启动完毕! 
@pause

---sqlserver 相关服务停止---

@echo.服务停止...... 
@echo off 
@sc stop SQLSERVERAGENT 
@sc stop MSSQLServerOLAPService 
@sc stop msftesql 
@sc stop MsDtsServer 
@sc stop SQLWriter 
@sc stop MSSQLSERVER 
@echo off 
@echo.停止完毕! 
@pause

注:每行命令前有个@,没有也可以

选择性启动一些服务

@echo off
rem echo (备注: 自动:auto 手动启动:demand  禁用:disabled )
sc config knbcenter start=disabled
sc config PPTVService start=disabled
sc config 360rp start=disabled
sc config BFAssistantSvc start=disabled
(net stop knbcenter)&(net stop PPTVService)&(net stop 360rp)&(net stop BFAssistantSvc)
echo 已禁用服务:猎豹浏览器安全中心、PPTVService、360rp、BFAssistantSvc..

echo 选择要开启的服务:
echo.
echo    0  全部
echo    1  猎豹浏览器安全中心
echo    2  PPTVService
echo    3  360杀毒实时防护
echo    4  BFAssistantSvc
echo.
set/p var=请选择要开启的服务序号:
if %var%==0 (net start knbcenter)&(net start PPTVService)&(net start 360rp)&(net start BFAssistantSvc)
if %var%==1 net start knbcenter
if %var%==2 net start PPTVService
if %var%==3 net start 360rp
if %var%==4 net start BFAssistantSvc

pause

IIS相关

IIS重新启动的dos命令:iisreset /restart

启动IIS:   
net start iisadmin    (IIS的整个服务)
net start w3svc       (WWW网页WEB服务)
停止IIS:   
net stop iisadmin /y     (会自动停止www、ftp和smtp服务)

如果用的IIS自带FTP还可以执行
net start MSFtpsvc
命令来启动FTP

以上命令放到bat文件中,再结合windows的任务计划就可以实现调度

自动打开和关闭IE浏览器

使用批处理命令实现自动打开和关闭IE浏览器,把如下两行#号里的内容全部复制,粘贴到记事本,保存为*.bat文件(*号为文件名)。运行即可。
#####################
ping 127.1 -n 3 >nul 
rem 延时3秒 
@echo off  
rem 关闭回显命令  
cd C:\Program Files\Internet Explorer\ 
rem 改变当前目录到IE所在目录  
rem 打开ie,30秒后关闭 
start iexplore.exe http://localhost:8090/
rem 启动IE 执行加载路由连接程序 以上地址为例 
ping 127.1 -n 30 >nul 
rem 延时30秒   
taskkill /im iexplore.exe /f 
rem 关闭IE  
rem 加载路由成功结束 
  
#####################

-----另外附一个清理垃圾的bat文件 清理电脑中的垃圾文件.bat---

@echo off 
echo 正在清除系统垃圾文件,请稍等...... 
del /f /s /q %systemdrive%\*.tmp 
del /f /s /q %systemdrive%\*._mp 
del /f /s /q %systemdrive%\*.log 
del /f /s /q %systemdrive%\*.gid 
del /f /s /q %systemdrive%\*.chk 
del /f /s /q %systemdrive%\*.old 
del /f /s /q %systemdrive%\recycled\*.* 
del /f /s /q %windir%\*.bak 
del /f /s /q %windir%\prefetch\*.* 
rd /s /q %windir%\temp & md %windir%\temp 
del /f /q %userprofile%\cookies\*.* 
del /f /q %userprofile%\recent\*.* 
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*" 
del /f /s /q "%userprofile%\Local Settings\Temp\*.*" 
del /f /s /q "%userprofile%\recent\*.*" 
echo 清除系统垃圾文件完成! 
echo. & pause

@echo off  是关闭命令回显

批量运行exe,bat文件

.\packet\dotnetfx35.exe /passive
.\packet\WindowsXP-KB968930-x86-ENG.exe /passive /norestart
.\packet\WindowsXP-KB942288-v3-x86.exe /passive /forcerestart

把上面的写在一个文本文件中,存成.bat文件,在同级目录下建一个packet的文件夹,里面放入上面三个路径中的exe文件,运行该bat文件则可以自动运行这三个文件,/passive 是运行选项,有哪些选项可以用 可以在命令行中输入 ****.exe 文件 /?则可以看到所有可用选项
/norestart 是不重启的意思   
/forcerestart 是强制重启

如果想批处理运行一系列的exe文件,均可以这么做
适合用在批量运行一系列exe文件时,如批量安装,安装补丁包

上面有一个问题就是会按顺序一个一个执行,第一个运行完才开始第二个,有时需要按顺序执行一系列的exe,bat文件,或者说同时打开则可以这样

:echo 'automatchworker'
start AutoMatchWorker.bat
:echo 'ScheduleWorker'
start ScheduleWorker.bat
:echo 'SmsWork'
start SmsWorker.bat
:echo 'NotificationWorker'
start NotificationWorker.bat

就会“同时”打开四个程序

完整的一个例子如下

echo 'kill exe'
taskkill /f /im NotificationWorker.exe
echo 'copy new exe'
XCOPY /y D:\ManagerTools\NotificationWorker D:\Workering\PushNotificationWorker
echo 'start exe'
::echo 'PushNotificationWorker'
start PushNotificationWorker.exe

先杀掉已运行的exe

copy 新的程序 /y 表示不用提示覆盖

再开启

--------选择性启动某些服务-------

把下面两行#号中间的复制到bat文件中,双击运行即可
#########

@echo off
 
title 各种服务开启、关闭程序 
 
:allstart
 
cls
 
echo 请选择下面的编号来启动相应的服务
 
echo 1.VMware 服务开启、关闭
 
echo 2.SQL Server 2008 服务开启、关闭
 
echo 3.MySQL 服务开启、关闭
 
echo 4.Oracle XE 服务开启、关闭
 
echo 5.Teamviewer 服务开启、关闭
 
echo 6.Alipay 支付宝 服务开启、关闭
 
echo e.退出
 
set in=
 
set /p in=请输入:
 
if "%in%"=="1" goto vmware
 
if "%in%"=="2" goto sqlserver
 
if "%in%"=="3" goto mysql
 
if "%in%"=="4" goto oraclexe
 
if "%in%"=="5" goto teamviewer
 
if "%in%"=="6" goto alipay
 
if "%in%"=="e" goto allclose
 
rem VMware服务开启、关闭
 
:vmware
 
echo 1.开启vm服务,2.关闭vm服务。3.设置为手动。
 
echo u.回到上层。e.退出。
 
set in= 
 
set /p in=请输入:
 
if "%in%"=="1" goto vmstart
 
if "%in%"=="2" goto vmstop
 
if "%in%"=="3" goto vmsd
 
if "%in%"=="u" goto allstart
 
if "%in%"=="e" goto allclose
 
:vmstart
 
echo "正在启动VMware相关开机服务..."
 
rem net start ufad-ws60
 
net start VMAuthdService
 
net start VMnetDHCP
 
net start "VMware NAT Service"
 
net start VMUSBArbServicepause
 
echo 服务启动完毕!
 
goto vmware
 
:vmstop
 
echo "正在关闭VMware相关开机服务..."
 
rem net stop ufad-ws60
 
net stop VMAuthdService
 
net stop VMnetDHCP
 
net stop "VMware NAT Service"
 
net stop VMUSBArbService
 
echo 服务已关闭!
 
goto vmware
 
:vmsd
 
echo "切换VMware开机启动服务为手动中,请稍候..."
 
sc config VMAuthdService start= demand
 
sc config VMnetDHCP start= demand
 
sc config "VMware NAT Service" start= demand
 
sc config VMUSBArbService start= demand
 
echo 成功切换为手动模式!
 
goto vmware
 
rem SQL Server 2008服务开启、关闭
 
:sqlserver
 
echo 1.开启SQLServer服务,2.关SQLServer服务。3.设置为手动。
 
echo u.回到上层。e.退出。
 
set in= 
 
set /p in=请输入:
 
if "%in%"=="1" goto sqlserverstart
 
if "%in%"=="2" goto sqlserverstop
 
if "%in%"=="3" goto sqlserversd
 
if "%in%"=="u" goto allstart
 
if "%in%"=="e" goto allclose
 
:sqlserverstart
 
echo "正在开启SQL Server相关开机服务"
 
rem SQL Server 代理 (MSSQLSERVER2008)
 
net start SQLAgent$MSSQLSERVER2008
 
rem SQL Full-text Filter Daemon Launcher (MSSQLSERVER2008)
 
net start MSSQLFDLauncher$MSSQLSERVER2008
 
rem SQL Server (MSSQLSERVER2008)
 
net start MSSQL$MSSQLSERVER2008
 
rem SQL Server Browser
 
net start SQLBrowser
 
rem SQL Server Integration Services 10.0
 
net start MsDtsServer100
 
rem SQL Server VSS Writer
 
net start SQLWriter
 
goto sqlserver
 
:sqlserverstop
 
echo "正在关闭SQL Server相关开机服务"
 
net stop SQLAgent$MSSQLSERVER2008
 
net stop MSSQLFDLauncher$MSSQLSERVER2008
 
net stop MSSQL$MSSQLSERVER2008
 
net stop SQLBrowser
 
net stop MsDtsServer100
 
net stop SQLWriter
 
goto sqlserver
 
:sqlserversd
 
echo "切换SQL Server开机启动服务为手动中"
 
sc config SQLAgent$MSSQLSERVER2008 start= demand
 
sc config MSSQLFDLauncher$MSSQLSERVER2008 start= demand
 
sc config MSSQL$MSSQLSERVER2008 start= demand
 
sc config SQLBrowser start= demand
 
sc config MsDtsServer100 start= demand
 
sc config SQLWriter start= demand
 
echo 成功切换为手动模式
 
goto sqlserver
 
rem MySQL服务开启、关闭
 
:mysql
 
echo 1.开启mysql服务,2.关闭mysql服务。3.设置为手动。
 
echo u.回到上层。e.退出。
 
set in= 
 
set /p in=请输入:
 
if "%in%"=="1" goto mysqlstart
 
if "%in%"=="2" goto mysqlstop
 
if "%in%"=="3" goto mysqlsd
 
if "%in%"=="u" goto allstart
 
if "%in%"=="e" goto allclose
 
:mysqlstart
 
echo "正在启动MySQL相关开机服务..."
 
net start MySQL55
 
echo 服务启动完毕!
 
goto mysql
 
:mysqlstop
 
echo "正在关闭MySQL相关开机服务..."
 
net stop MySQL55
 
echo 服务已关闭!
 
goto mysql
 
:mysqlsd
 
echo "切换MySQL开机启动服务为手动中,请稍候..."
 
sc config MySQL55 start= demand
 
echo 成功切换为手动模式!
 
goto mysql
 
rem Oracle XE 服务开启、关闭
 
:oraclexe
 
echo 1.开启oraclexe必要服务,2.关闭oraclexe必要服务。3.设置为手动。
 
echo u.回到上层。e.退出。
 
set in= 
 
set /p in=请输入:
 
if "%in%"=="1" goto oraclexestart
 
if "%in%"=="2" goto oraclexestop
 
if "%in%"=="3" goto oraclexesd
 
if "%in%"=="u" goto allstart
 
if "%in%"=="e" goto allclose1
 
:oraclexestart
 
echo "正在启动oracle xe 必要服务..."
 
net start OracleMTSRecoveryService
 
net start OracleXETNSListener
 
net start OracleServiceXE
 
echo 服务启动完毕!
 
goto oraclexe
 
:oraclexestop
 
echo "正在关闭oracle xe相关开机服务..."
 
net stop OracleMTSRecoveryService
 
net stop OracleXETNSListener
 
net stop OracleServiceXE
 
echo 服务已关闭!
 
goto oraclexe
 
:oraclexesd
 
echo "切换oracle xe开机启动服务为手动中,请稍候..."
 
sc config OracleMTSRecoveryService start= demand
 
sc config OracleServiceXE start= demand
 
sc config OracleServiceXE start= demand
 
sc config OracleXEClrAgent start= demand
 
sc config OracleXETNSListener start= demand
 
echo 成功切换为手动模式!
 
goto oraclexe
 
rem Teamviewer服务开启、关闭
 
:teamviewer
 
echo 1.开启Teamviewer服务,2.关闭Teamviewer服务。3.设置为手动。
 
echo u.回到上层。e.退出。
 
set in= 
 
set /p in=请输入:
 
if "%in%"=="1" goto teamviewerstart
 
if "%in%"=="2" goto teamviewerstop
 
if "%in%"=="3" goto teamviewersd
 
if "%in%"=="u" goto allstart
 
if "%in%"=="e" goto allclose
 
:teamviewerstart
 
echo "正在启动Teamviewer相关开机服务..."
 
net start TeamViewer7
 
echo 服务启动完毕!
 
goto teamviewer
 
:teamviewerstop
 
echo "正在关闭Teamviewer相关开机服务..."
 
net stop TeamViewer7
 
echo 服务已关闭!
 
goto teamviewer
 
:teamviewersd
 
echo "切换TeamViewer开机启动服务为手动中,请稍候..."
 
sc config TeamViewer7 start= demand
 
echo 成功切换为手动模式!
 
goto teamviewer
 
rem alipay服务开启、关闭
 
:alipay
 
echo 1.开启alipay服务,2.关闭alipay服务。3.设置为手动。
 
echo u.回到上层。e.退出。
 
set in= 
 
set /p in=请输入:
 
if "%in%"=="1" goto alipaystart
 
if "%in%"=="2" goto alipaystop
 
if "%in%"=="3" goto alipaysd
 
if "%in%"=="u" goto allstart
 
if "%in%"=="e" goto allclose
 
:alipaystart
 
net start AliveSvc
 
net start AlipaySecSvc
 
goto alipay
 
:alipaystop
 
net stop AliveSvc
 
net stop AlipaySecSvc
 
goto alipay
 
:alipaysd
 
sc config AliveSvc start= demand
 
sc config AlipaySecSvc start= demand
 
goto alipay
 
:allclose
 
echo 按任意键退出
 
pause
 
exit

#########

--------end------
--------------------- 
作者:Jack2013tong 
来源:CSDN 
原文:https://blog.csdn.net/huwei2003/article/details/6250686 
版权声明:本文为博主原创文章,转载请附上博文链接!

批处理启动和停止服务相关推荐

  1. [转]使用批处理设置、启动和停止服务

    使用批处理设置.启动和停止服务                                                              Pashine     当我们的电脑安装了数据 ...

  2. 使用批处理设置、启动和停止服务

    使用批处理设置.启动和停止服务                                                              Pashine     当我们的电脑安装了数据 ...

  3. oracle如何启动和停止服务,CentOS启动和停止服务详解

    CentOS启动和停止服务详解 服务简介 Linux 系统服务是在Linux启 动时自动加载, 服务的添加.删除.自动运行及状态 CAMS 在安装过程中会自动添加相关的服务,例如: service c ...

  4. 安卓案例:启动和停止服务

    安卓案例:启动和停止服务 一.服务(Service) Service生命力顽强,它有两方面的作用:后台运行.跨进程访问.学习Service基础,利用它可以在后台完成一些耗时的工作,比如网络连接.下载数 ...

  5. centos终止linux程序,CentOS启动和停止服务详解

    CAMS 在安装过程中, 1. 添加服务 添加服务的步骤为: (1) 将该服务的脚本文件拷入/etc/rc.d/init.d 文件夹下,例如: service camsd stop 停止 camsd ...

  6. 服务的基本使用:定义、启动和停止服务

    定义一个服务 我们来看下怎么在项目中定义一个服务,新建一个项目,右击包名,我这里的包名是com.example.lenovo.servicetest,然后选择New->Service->S ...

  7. 停止计算机sql服务,SQL Server启动和停止服务的三种方法

    一.为什么要启动SQL Server服务? 1.如果你不开启服务,去连接数据会出现报错信息 2.因为不连接到服务器,就对数据库操作不了 二.启动SQL Server的三种方法 第一种:后台启动服务 * ...

  8. springboot 脚本启动、停止服务

    启动服务:#!/bin/bash CPU_COUNT=`cat /proc/cpuinfo | grep processor | wc -l`MEM_OPTS="-Xms1024m -Xmx ...

  9. 批处理启动或停止打印机服务

    Windows的打印服务(Spooler)是一个自动启动的服务,打印文件,需要该服务的支持.停用它后,每次打印文件还得打开服务管理窗口去找到后再启动它.他问我,能不能创建一个快捷方式放到桌面上,在用到 ...

最新文章

  1. 楚天高速拟12.6亿并购三木智能 涉足物联网领域
  2. 一文详解 RNN 及股票预测实战(Python)!
  3. python基础-变量运算符(3)
  4. BZOJ1296:[SCOI2009]粉刷匠
  5. android第三次作业
  6. cfiledialog指定位置和大小_GDamp;T | 位置度公差的理解过程
  7. terminal看服务器性能,终端服务服务器性能评估优化问题
  8. sprintf函数的用法_我在C++项目中对于宏的一些用法
  9. 无人驾驶是好,但晕车咋办?
  10. 4.SOA架构:服务和微服务分析及设计--- Web服务及微服务的分析与建模
  11. 太真实了!工业界AI项目落地血泪教训总结
  12. 基于vue的nuxt框架cnode社区服务端渲染 1
  13. jQuery获取元素属性值为undefined
  14. 理光M2004文件服务器,理光mp2014打印机怎么连接到电脑
  15. apache、php安装
  16. C#——signalr实现简单的网页实时聊天
  17. java 图片质量压缩_java图片高质量压缩
  18. python时间戳_Python时间戳使用和相互转换详解
  19. jquery创建html标签并添加样式
  20. python正则表达式入门教程括号及字符

热门文章

  1. C语言----保持城市天际线
  2. 核磁共振光谱使帕金森氏蛋白质在分子水平研究实现突破
  3. Ubuntu 安装Flatabulous扁平化风格的桌面主题
  4. 如何使用iPad的SBSettings软件的操作方法技巧
  5. java下载网页内容_java下载网页并读取内容
  6. B. Power Sequence(数学+枚举)Codeforces Round #666 (Div. 2)
  7. 整数-28d在计算机中用8位二进制表示,整数-28D,在计算机中用8位二进制表示为________。...
  8. java卸载2503,无法安装msi格式软件提示错误代码2502、2503怎么办?
  9. 2018年世界杯赔率预测
  10. ElasticSearch6.5.0【Java客户端之TransportClient】