批处理启动和停⽌服务
使⽤批处理设置、启动和停⽌服务
当电脑安装了数据库服务(如,Oracle、SQLServer)或⼀些web服务(如IIS,tomcat)时,系统会添加很多服务(services)项。⽽这些服务往往是占⽤很⼤的系统资源的。如果在平时不⽤的时候⼀直处于启动状态是对系统资源的极⼤浪费。所以我们就通过“管理⼯具”中的“服务”将所有不必要的服务停⽌。但是每次⽤到的时候或不⽤的时候⼿⼯去启动和停⽌⽐较⿇烦。⽤批理来操作会⽅便很多。
下⾯介绍两种使⽤批处理操作来 设置、启动和停⽌服务的⽅法。
从Windows XP开始,其⾃带的DOS⼯具中加⼊了⼀个sc.exe(Service Control)和 (C:/WINDOWS/system32)的⽂件,恰好可以对服务的启动类型以及服务的启动或者关闭等进⾏操作,再利⽤DOS的批处理优势,就可以把上⾯提到的操作进⾏简化。
⽅法 ⼀:
<常⽤功能:
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
⽅法⼆:
打开mysql服务命令使⽤功能启动或停⽌服务
启动/停⽌ 服务的命令⾏格式为
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浏览器
-----另外附⼀个清理垃圾的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⽂件
.\ /passive
.\ /passive /norestart
.
\ /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 /
echo 'copy new exe'
XCOPY /y D:\ManagerTools\NotificationWorker D:\Workering\PushNotificationWorker echo 'start exe'
::echo 'PushNotificationWorker'
先杀掉已运⾏的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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论