执行bat文件作为Windows服务

时间:2017-09-26 08:10:47

标签: windows batch-file cmd

我有一个Windows批处理文件,我想将其作为服务执行。我找到了像alwaysRun这样的应用程序,但我想为此目的使用windows in-build应用程序。任何人都可以建议。

我的用例是: - 我有一个批处理文件,每隔10秒就会执行一次。所以我创建了一个普通的批处理文件,它调用这个bat文件并休眠10秒。所以我想把这个第二个bat文件作为服务。所以它被调用一次,当窗口重新启动时。

此文件应作为服务调用。

@echo off
:begin
CALL dummyfile.bat
timeout /t 1
goto begin

请建议。

3 个答案:

答案 0 :(得分:4)

我不会那样做,这是没用的。您可以从计划任务运行第一个批处理文件。

如果你想在启动时运行它。

例如,在Windows 8上

创建一个完全隐藏批处理文件的VBS文件。

<强> hideme.vbs

"ID", "Age", "Rich", "timestamp"
1, "50", "Y", "2017-06-06 14:19:21.77"
2, "22", "N", "2017-06-06 14:19:21.77"

然后打开“开始/运行”并输入Set MyScript = CreateObject("WScript.Shell") MyScript.Run "C:\wherever\script\is\batch.cmd", 0, False 并按Enter键。在此处粘贴VBS文件的快捷方式。

每次PC启动时,这将让VBS文件以隐藏模式调用第二个批处理文件。

修改 为了杀死它,您需要创建另一个批处理文件,您可以运行该文件以查找在后台运行的cmd.exe。

在原始批处理文件中,在@echo off

之后的最开始创建标题
shell.startup

现在在你的新批处理文件中,我们称之为@echo off title LOOP :begin CALL dummyfile.bat timeout /t 1 goto begin 你添加它:

killLOOP.cmd

这将搜索窗口标题为LOOP的进程,然后将其终止。只需要关闭它就可以运行它。 现在在你的

答案 1 :(得分:1)

在Windows 2012 Server上

sc create myservice binPath=C:\some\path\to\myservice.bat

并删除:

sc delete myservice

答案 2 :(得分:0)

您是否曾经看过本地Windows程序sc.exe?它允许您将程序作为服务运行。

以下是一些Microsoft文档:https://support.microsoft.com/en-us/help/251192/how-to-create-a-windows-service-by-using-sc-exe

  

sc [服务器名]命令服务名[Optionname = Optionvalue ...]

尤其是,您可以使用Create命令来创建新服务:

  

创建   创建服务(将其添加到注册表)。

最简单的语法如下:

sc Create myservice binPath=C:\some\path\to\myservice.bat