今天朋友发送了一个问题过来,如下:
建立一个批处理文件,其中的功能就是要停掉某个服务,然后做一些整理文件的操作,再把服务启动。
其中使用的命令是:
sc stop serviceName
[file operations]
sc start serviceName
朋友的问题是,执行批处理的时候,系统不等服务停止,就继续往下执行批处理了,这样就导致后续的文件操作失败,而后续的重新启动服务的操作也会失败。
之前没有用过sc的命令,所以就在google上搜索了一下这个命令的用法,朋友的用法没有任何问题。
先是有些怀疑是那个服务比较特殊,但是这种情况的概率比较小,毕竟服务都是由Windows系统管理的。
于是使用“停止服务”为关键字重新搜索,结果发现了很熟悉的命令:net stop和net start,这两个命令同样可以起到停止和启动服务的作用。
于是就在自己的计算机里面新建了一个批处理文件,使用net命令来操控服务。
这样的做法是可以让系统等待的,一切正常,可以达到目的。
把net修改为sc之后,果然出错了,系统不等待停止服务的操作完成就继续往下执行批处理,导致了问题。
原来这两个命令尽管类似,但是还是有细微的区别的,如果不加注意直接使用,就会与目的相违背了,呵呵。