`
dyllove98
  • 浏览: 1405626 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39062
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80071
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133167
社区版块
存档分类
最新评论

如何在Windows的cmd下让程序在后台执行?

 
阅读更多

欢迎大家访问我的个人网站 萌萌的IT人,后续所有的文章都会在此发布

--------------------------------------------------------------------------------------------

在windows下启动JBoss服务器,需要在命令行中输入run.bat。但是运行后如果你想停止服务器,可能的做法就是直接按Ctrl+C键强行终止服务器,显然这种方式是不友好的。另一种方法就是再开一个cmd窗口,进入Jboss的bin目录,然后键入shutdown.bat -S.  这样毕竟费时费力,如果能像Linux下在命令行的后面加一个&让它在后台运行,要关闭时就不用另开窗口直接输入相应的关闭命令就好了。

    答案就在下面:

    在执行的命令前加上start /b,比如start /b run.bat。就相当于Linux下的run.sh &。

 

windows上面查看进程,使用tasklist 命令
linux上面显示进程 使用 ps -ef 命令
----------------------------------------
在windows上面杀进程用taskkill命令
taskkill /im iperf.exe /t /f
linux上面用killall或者 kill命令
killall iperf1.7 
----------------------------------------
在windows上面后台运行可以使用start 命令 并且指定/b 选项, linux系统需要在命令后面加上& 符号即可。

后台运行 iperf.exe 网络测试程序,并且把输出保存到 c:\iperf_multicast_server_logfile.txt 
start /b iperf.exe -s -u -l 1k -B 224.0.100.2 -w 1G > c:\iperf_multicast_server_logfile.txt

后台运行/root/iperf1.7 网络测试程序,并且把输出保存到 /root/iperf_multicast_client_logfile.txt 
/root/iperf1.7 -c 224.0.100.2 -u -l 1k -b 400M -w 1G -i 5 -t 60 -T 4 > /root/iperf_multicast_client_logfile.txt&

---------------------------------
windows上面显示 文本文件内容,可以用type命令。
type   c:\iperf_multicast_server_logfile.txt

Linux上面显示文本文件内容,使用cat 命令即可
cat /root/iperf_multicast_client_logfile.txt

 

两者的区别在于“任务计划”会在前台运行,运行帐户为当前用户;

而at命令在后台运行,运行帐户为system。

当然at命令也可以使用/interactive选项在前台运行。

 

使用at命令要注意两点:

  1. 因为运行帐户不同,所以一些环境变量是不同的,比如使用pscp远程拷贝的时候,当前用户的key已经在注册表里,但是system用户没有,导致运行失败。(system如果第一次运行pscp会出现主机验证,解决方案是要么用/interactive运行一次,要么使用pscp -batch)
  2. 只有可执行文件(.exe .bat .com)可以直接使用at命令运行,cmd内置命令(如copy、ren和bat的语法等)要使用at 19:00 cmd /c copy ….的形式来运行,如果bat文件中也包含cmd命令,也要使用这种方式。
 

NT Server的AT命令详解 
  Windows NT Server的服务程序管理器只能设置某项服务的启动方式(自动、手动、失效),而在日常管理工作中,常常要求某项服务能定时开启、关闭。Windows NT Server提供的AT命令能够实现这一点。利用它可实现RAS服务定时开关,其具体步骤如下: 
    1.在“设置”“控制面板”“服务”中启动Schedule服务,并将其启动方式属性设置为自动。 
    2.在命令窗口中使用AT命令设置服务程序的定时启动关闭。 
    AT命令的格式如下: 
    AT [\\computername] time [/interactive] [/every:date[,]|next:date[,]] ″command″ 
    参数含义: 
    无参数:显示所有已设置的计划命令情况。 
    \\computername:指示执行该命令的计算机名,如省略则在本机执行。 
    time:命令执行时间 
    /interactive:当程序执行时是否与正在登录的用户进行交互。 
    /every:date[,]:指定程序执行的日期(如每周二、三:/every:T,W),每月1,2号:/every:1,2)。 
    next:date[,]:指定程序下一次执行的日期。 
    ″command″:定时执行的Windows NT命令,程序,批处理。 
    AT [\\computername] [[id][/delete][/yes]] 
    参数含义: 
    id:分配给计划命令的识别号码,可由不带参数的AT命令查到。 
    /delete:取消指定的计划命令,如果id省略的话,取消所有的计划命令。 
    /yes:强制对所有的取消询问回答yes。
  用法一,定时启动关闭某个服务 
  
  以RAS服务方例,让该服务在每日19:00启动,次日7:30关闭,AT命令如下: 
  AT 19:00 /every:M,T,W,Th,F,S,Su net start ″remote access server″ 
  AT 7:30 /every:M,T,W,Th,F,S,Su net stop ″remote access server″ 
  
  用法二,定时关机 
  
  1.编写一个批处理文件,内容如下: 
  shutdown /l 
  如果是让机器重新启动则使用 
  shutdown /r 
  文件存为c:\autoshut.bat 
  2.建立自动执行条目: 
  at 22:00 c:\autoshut.bat 
  
  这样每天晚上22:00机器都会自动关机,在关机前会进行30秒钟的提示. 
  shutdown程序是win2k的Rkit中自带的,windowxp缺省自带。
  

 
在 Windows 2000 中,您可以使用“控制面板”中的“任务计划”工具来安排任务。您也可以使用 at 命令手动安排任务。本文介绍如何使用 at 命令创建和取消计划任务。 

AT 命令概述

您可以使用 at 命令来安排命令、脚本或程序在指定的日期和时间运行。您也可以使用此命令查看现有的计划任务。 

要使用 at 命令,“任务计划程序”服务必须在运行中,而且您必须以本地管理员组成员的身份登录。使用 at 命令创建任务时,您必须对任务进行配置,使之在同一用户帐户下运行。 

at 命令使用以下语法:
at \\computername time /interactive | /every:date,.../next:date,... command
at \\computername id /delete | /delete/yes
以下列表介绍可用于 at 命令的参数:
  • \\computername:此参数用于指定远程计算机。如果省略此参数,则任务将安排在本地计算机上运行。
  • time:此参数用于指定运行任务的时间。时间是按 24 小时制的 hour:minutes 形式指定的。例如,0:00 代表午夜,20:30 代表晚上 8:30。
  • /interactive:此参数用于允许任务运行时与处于登录状态的用户的桌面进行交互。
  • /every:date,...:此参数用于安排任务在指定的日期或在一周或一月内指定的一天或多天运行,例如每星期五或每月的第八天。将 date 指定为一周内的一天或多天(使用下面的缩写形式:M、T、W、Th、F、S、Su)或一月内的一天或多天(使用数字 1 至 31)。多个日期项之间一定要用逗号隔开。如果省略此参数,则任务将安排在当天执行。
  • /next:date...:此参数用于安排任务在当天之后的某个时间运行(例如,下个星期一)。将 date 指定为一周内的一天或多天(使用下面的缩写形式:M、T、W、Th、F、S、Su)或一月内的一天或多天(使用数字 1 至 31)。多个日期项之间一定要用逗号隔开。如果省略此参数,则任务将安排在当天执行。
  • command:此参数用于指定要运行的 Windows 2000 命令、程序(.exe 或 .com 文件)或批处理程序(.bat 或 .cmd 文件)。如果该命令要求使用路径作为参数,请使用绝对路径名(以驱动器号开头的完整路径)。如果该命令位于远程计算机上,请使用统一命名约定 (UNC) 路径名(\\ServerName\ShareName)。如果该命令不是可执行 (.exe) 文件,必须在命令前面添加 cmd /c,例如,cmd /c copy C:\*.* C:\temp
  • id:此参数用于指定分配给计划任务的标识号。
  • /delete:此参数用于取消计划任务。如果省略 id 参数,则将取消计算机上的所有计划任务。
  • /yes:此参数用于强制对取消计划任务时系统发出的所有查询回答“是”。如果省略此参数,系统将提示您确认对任务的删除。
注意:使用 at 命令时,计划任务是通过使用系统帐户凭据来运行的。

如何创建计划任务

  1. 单击开始,指向程序,指向附件,然后单击命令提示符
  2. 在命令提示符下,键入下面一行,然后按 Enter 显示当前运行的服务的列表:
    net start
    如果“任务计划程序”未显示在列表中,则请键入下面一行,然后按 Enter:
    net start "task scheduler"
  3. 在命令提示符下,键入下面一行(使用与您的情况相符的参数),然后按 Enter:
    at \\computername time /interactive | /every:date,.../next:date,... command

示例

  • 要想在午夜将“Documents”文件夹中的所有文件复制到“MyDocs”文件夹中,请键入下面一行,然后按 Enter:
    at 00:00 cmd /c copy C:\Documents\*.* C:\MyDocs
  • 要想在每个工作日晚上 11:00 备份“Products”服务器,请创建包含备份命令的批处理文件(例如 Backup.bat),键入下面一行,然后按 Enter 安排该备份任务:
    at \\products 23:00 /every:M,T,W,Th,F backup
  • 要想安排 net share 命令上午 6:00 在“Sales”服务器上运行,并将列表重定向到“Corp”服务器上的共享文件夹“Reports”中的“Sales.txt”文件,请键入下面一行,然后按 Enter:
    at \\sales 06:00 cmd /c "net share reports=d:\Documents\reports >> \\corp\reports\sales.txt"

如何取消计划任务

  1. 单击开始,指向程序,指向附件,然后单击命令提示符
  2. 在命令提示符下,键入下面一行,然后按 Enter 显示当前运行的服务的列表:
    net start
    如果“任务计划程序”未显示在列表中,则请键入下面一行,然后按 Enter:
    net start "task scheduler"
  3. 在命令提示符下,键入下面一行(使用与您的情况相符的参数),然后按 Enter:
    at \\computername id /delete | /delete/yes

示例

  • 要取消在本地计算机上安排的所有任务,请键入 at /delete,然后按 Enter。
  • 要取消名为“MyServer”的计算机上的 ID 为 8 的任务,请键入 at \\MyServer 8 /delete,然后按 Enter。

如何查看计划任务

要查看通过使用 at 命令创建的任务,请按照下列步骤操作:
  1. 单击开始,指向程序,指向附件,然后单击命令提示符
  2. 在命令提示符下,键入下面一行,然后按 Enter 显示当前运行的服务的列表:
    net start
    如果“任务计划程序”未显示在列表中,则请键入下面一行,然后按 Enter:
    net start "task scheduler"
  3. 在命令提示符下,执行下列步骤之一:
    • 要查看通过使用 at 命令安排的任务的列表,请键入下面一行,然后按 Enter:
      at \\computername
      - 或 - 

    • 要查看特定的计划任务,请键入下面一行,然后按 Enter:
      at \\computername id

示例

  • 要查看本地计算机上的所有计划任务,请键入 at,然后按 Enter。
  • 要查看名为“Support”计算机上的所有计划任务,请键入 at \support,然后按 Enter。
  • 要查看本地计算机上 ID 为 18 的任务,请键入 at 18,然后按 Enter。

疑难解答

  • 当您键入 at \\computername 以查看计划任务列表时,使用 at 命令创建的某些(或全部)计划任务没有列出。 

    使用 at 命令创建任务后,如果在“计划任务”文件夹中修改了任务,则可能会发生此问题。当您使用 at 命令安排任务时,该任务显示在“控制面板”中的“计划任务”文件夹中。您可以查看或修改任务。但是,如果修改了任务,当您使用 at 命令时,将无法查看任务。 

    要解决此问题,请在“控制面板”中的“任务计划”文件夹中查看或修改该任务。有关此现象的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    220149  无法使用任务计划程序工具查看 AT 任务
  • 当您使用 at 命令安排任务时,该任务在指定的时间或日期不运行。 

    如果满足下列任一条件,就会发生这种现象:
    • 该命令的语法不正确。 

      安排任务后,请键入 at \\computername 以确认语法正确。如果命令行下显示的信息不正确,请取消该任务,然后重新创建它。 

      - 或 -
    • 您安排的任务运行的命令不是 .exe 文件。 

      at 命令在运行命令之前不自动加载 cmd(命令解释器)。除非您运行的是 .exe 文件,否则您必须在命令的开头加载 Cmd.exe,例如 at cmd /c dir > c:\test.txt
有关 AT 命令疑难解答的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
142040  使用 /k 开关的 AT 命令疑难解答
121562  使用 AT 命令启动的应用程序不是交互式应用程序
分享到:
评论

相关推荐

    后台执行CMD脚本,结果写入文件

    后台执行通常意味着程序可以在不占用用户界面的情况下运行。在CMD中,我们可以使用"&"符号或者"start"命令来实现后台执行。例如,`command1 & command2` 或 `start /B command` 会使得多个命令或一个命令在后台运行...

    bat后台执行实现bat后台执行实现

    根据给定文件的信息,本文将围绕“bat后台执行”的主题展开详细讨论,旨在解析如何在Windows环境下通过批处理脚本(.bat文件)实现程序或命令的后台运行,并结合部分提供的内容进行具体分析。 ### 一、理解bat后台...

    一个让cmd命令可以在后台运行的小程序

    综上所述,这个小程序通过巧妙地结合Windows API和批处理脚本,提供了一种便捷的方式,使得开发者和用户能够在不干扰日常工作的前提下,轻松地在后台运行CMD命令。这对于那些需要长时间运行而不需要用户交互的任务来...

    C#-WinForm执行CMD命令

    在某些情况下,我们需要在WinForm应用中执行CMD(命令提示符)命令,以实现与操作系统底层的交互,如系统管理、文件操作或调用外部程序等。本篇将详细介绍如何在C# WinForm应用中执行CMD命令。 首先,我们要引入...

    易语言控制台调用CMD命令

    通过这种方式,易语言程序能够动态地在后台执行CMD命令,并获取其结果。 然而,需要注意的是,`系统`命令执行的结果通常是无法直接获取的,除非使用更复杂的方法,如创建管道或子进程进行通信。如果需要获取CMD命令...

    qt调用cmd命令和dll例子

    这些知识点在Windows操作系统下的程序开发中尤为常见,因为CMD是系统内置的命令行工具,而DLL则允许共享代码和资源,减少内存占用。 首先,让我们深入理解如何在Qt中调用CMD命令。在Qt中,我们可以使用QProcess类来...

    C#执行cmd命令.zip

    5. **事件驱动编程**:在Winform中,可以通过添加按钮控件并为其设置事件处理程序,让用户点击按钮后执行CMD命令。例如,当用户点击“执行”按钮时,触发相应的事件,调用执行CMD命令的函数。 6. **UI更新**:由于...

    隐藏cmd命令行窗口C++源码

    在C++编程中,隐藏CMD命令行窗口是一个常见的需求,特别是在开发系统服务或者后台应用程序时。CMD窗口的出现可能会打扰用户的界面体验,因此通过编写特定的代码可以使程序在运行时保持不可见。本资源提供了隐藏CMD...

    执行dos命令捕捉CMD实时输出,不显示cmd窗口

    当我们需要在后台执行DOS命令而不显示CMD窗口时,这通常涉及到批处理脚本和某些特定命令的使用。以下是一些相关的知识点: 1. **批处理脚本**: 批处理脚本是包含一系列DOS命令的文本文件,扩展名为`.bat`或`.cmd`...

    系统服务监控(CMD窗口)程序的vc 源代码.rar

    多线程使得程序的不同部分可以在不影响彼此的情况下同时执行,提高用户体验。另外,为了使用户能够根据屏幕提示进行操作,程序可能还包含了用户输入处理和错误处理机制。 总的来说,"WatchDog"程序结合了VC++的强大...

    VS2017创建运行Windows服务程序

    Windows 服务是 Windows 操作系统中的一种特殊程序,它可以在后台运行,提供一些特殊的功能。下面,我们将一步步地指导你创建和运行一个简单的 Windows 服务程序。 创建 Windows 服务项目 首先,我们需要在 VS2017...

    可以隐藏执行exe的工具

    1 开始--》运行---》cmd打开命令提示行。 2 然后输入hidec.exe所在目录的绝对路径,后面加要执行文件的绝对路径, 3 执行就可以将该程序在后台执行了。 很方便,如果闲弹框烦的可以试一下

    用于实现OJ后台的Windows批处理程序

    在Windows环境下,批处理程序可以自动化执行重复性的任务,例如编译多个源文件或执行一系列的命令。 2. **C/C++编译**:批处理程序会调用编译器(如GCC或Visual Studio的cl.exe)来编译C/C++源代码。编译过程中,源...

    Win32下后台执行DOS命令获得当前网络延迟

    总结来说,要在Win32环境下后台执行DOS命令获取网络延迟,需要理解并应用Windows API中的进程创建和管道通信技术。`CreatePipe`和`CreateProcessAsUser`等函数的组合使用,使得我们能够在不显示命令行窗口的情况下...

    Python后台静默打印PDF文件附属执行程序

    **Gsprint** 是一个基于Ghostscript的实用程序,专为Windows环境设计,用于在后台静默打印PDF文件。它简化了通过命令行调用Ghostscript进行打印的流程,提供了更友好的界面和参数设置。Gsprint允许开发者指定打印机...

    BAT教程02简介自动执行与隐藏cmd窗口等

    在Windows系统中,我们可以通过多种方式让计算机启动时自动执行一个批处理(bat)文件。例如,可以将bat文件放置于“启动”文件夹内,或者通过创建计划任务来实现。 ##### 方法一:使用“启动”文件夹 1. **路径...

    CMD替换自身.rar

    CMD替换自身的技术通常涉及进程注入、进程隐藏或者权限提升等高级概念,它允许程序在后台无感知地运行,提高隐蔽性。 易语言是一种中文编程语言,其特点是语法简洁明了,适合初学者学习。在易语言中实现CMD替换自身...

    添加程序到后台服务系统

    在IT领域,将程序添加到后台服务系统是常见的操作,特别是在服务器管理和自动化任务执行中。后台服务,也称为系统服务,是在操作系统启动时自动运行,通常独立于用户交互的进程。这种服务可以确保应用程序在没有用户...

Global site tag (gtag.js) - Google Analytics