首页 新闻 会员 周边

如何用windows的命令行来控制一个服务程序

0
悬赏园豆:10 [已解决问题] 解决于 2014-02-19 10:00

如何用windows的命令行来控制一个服务程序,比如输入一个自定义的命令,某个windows服务就可以进行相应的操作

问题补充:

楼下几位可能误解我的意思了

我的意思是我开发了一个windows服务,这个服务里面有一个下载图片的功能,我希望在命令行里输入download:http://www.XXXX.com就可以把里面的图片下载下来(这是一个例子为阐明问题,不是实际需求)

各位有啥好的意见

baoj2010的主页 baoj2010 | 初学一级 | 园豆:102
提问于:2014-02-12 16:08
< >
分享
最佳答案
0

为什么要使用命令行与服务交互呢?是要用户手工操作命令行么?

曲线救国一下:

1.写一个服务

2.写一个或多个控制台程序与服务交互,这个交互方式就比较多了....

3.在命令行中调用写好的控制台程序,传入相应的参数。

 

依照你给的例子:写一个SERVICE服务,

在写一个download.exe,接受url参数,并传入SERVICE服务中,

命令行:download.exe http://www.XXXX.com

 

或者写一个 consol.exe 接受download等多个命令,download命令格式为[download:URL]

命令行:consol.exe download:http://www.XXXX.com

 

把consol.exe放系统目录里面或修改path参数,就可以简写成consol download:http://www.XXXX.com

收获园豆:10
hailants | 小虾三级 |园豆:750 | 2014-02-13 14:59

那这控制台又如何与该windows服务交互呢

baoj2010 | 园豆:102 (初学一级) | 2014-02-13 15:09

using (StreamWriter writer = new StreamWriter("C:\\TEST.txt", true, Encoding.UTF8))
{
      string input = Console.ReadLine();
      int i=0;
      while (i <= 10)
     {
         writer.WriteLine("这是第"+i+"行:"+input);
         i++;
     }
}
Console.Read();

然后再命令行输入***.exe 3232323结果程序没有执行,请问大侠如何给控制台传参啊?

baoj2010 | 园豆:102 (初学一级) | 2014-02-13 15:47

@baoj2010: 内存共享、TCP、WCF。。。这就是常规的进程间通讯问题....

hailants | 园豆:750 (小虾三级) | 2014-02-14 08:41

@baoj2010: C#的控制台程序,main函数有个数组参数,那里面就是你调用EXE时后面传的参数,以空格分割,至于运行过程中的控制台输入才需要用到Console.Read()或Console.ReadLine(),而且是需要while等循环来判断读入的数据是否正确的

hailants | 园豆:750 (小虾三级) | 2014-02-14 08:44

@baoj2010: 你去搜一下控制台程序的例子了解一下吧

hailants | 园豆:750 (小虾三级) | 2014-02-14 08:45
其他回答(4)
0

windowsd的sc已经可以处理

参考http://wenku.baidu.com/view/70922535f111f18583d05a28

2012 | 园豆:21230 (高人七级) | 2014-02-12 16:40
0

最简单的方法应该直接使用powershell就搞定了。

ocean | 园豆:824 (小虾三级) | 2014-02-12 16:50
0

如果只是启动或关闭服务,只需要用net start [Service1]就可以了。

如果需要让windows自动执行Dos,可以通过windows服务来实现。

方法: 将命令行写成bat文件,再用Windows服务调用bat。

详见:使用C#创建WindowsService(Windows服务,附源码):定期执行Dos命令或Bat(批处理)文件

http://download.csdn.net/detail/guo2001china/1760997

服务名:epAgentService

 

运行环境:Framework2.0

文件说明:

install.bat 安装服务

UnInstall.bat 删除服务

config.ini 配置文件

 

配置文件说明:

[settings]

batPath BAT文件路径,例:d:\1.bat

[intervalsetting]

interval=5 间隔时间,单位:秒。例:5,表示5秒钟执行一次。

guo2008 | 园豆:195 (初学一级) | 2014-02-12 17:06
0
邀月 | 园豆:25475 (高人七级) | 2014-02-13 10:01

我的需求不是单纯的启动停止服务,而是想通过命令行与服务交互

支持(0) 反对(0) baoj2010 | 园豆:102 (初学一级) | 2014-02-13 11:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册