管理cmd文件中的进程

时间:2016-09-02 06:47:13

标签: windows batch-file cmd

我想管理cmd文件中的进程。我的cmd将启动另一个cmd文件,我想要更新状态,...例如,我想写另一个进程关闭时的日期。

所以,我试过了:

rem %process% is the path to my cmd file
start "Process" %process%

有没有办法管理已启动的流程?

我试图使用:

for /F "TOKENS=1,2,*" %%a in ('tasklist /FI "IMAGENAME eq %process%"') do (
    set MyPID=%%b
)

问题是该进程是cmd文件,因此IMAGENAME将是“cmd.exe”。

任何解决方案?

2 个答案:

答案 0 :(得分:2)

当你开始这个过程时,你会更容易获得pid。 您可以使用<controls:MetroWindow x:Class="....MainWindow2" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="http://metro.mahapps.com/winfx/xaml/controls" xmlns:viewModels="clr-namespace:...ViewModels" xmlns:views="clr-namespace:...Views" xmlns:enums="clr-namespace:...Enums" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:command="http://www.galasoft.ch/mvvmlight" xmlns:commands="clr-namespace:...Commands" xmlns:common="clr-namespace:...Common" Title="MainWindow" Height="1080" Width="1920" ShowTitleBar="False" ShowCloseButton="False" ShowMinButton="False" ShowMaxRestoreButton="False" ShowSystemMenuOnRightClick="False" ShowIconOnTitleBar="False" WindowState="Maximized" WindowStyle="None" ResizeMode="NoResize" IgnoreTaskbarOnMaximize="True" ShowInTaskbar="False" UseNoneWindowStyle="True" IsWindowDraggable="False" Background="{StaticResource BackgroundBrush}" DataContext="{Binding MainPageVM, Source={StaticResource ViewModelLocator}}"> 命令执行此操作(虽然它有点麻烦):

WMIC

您还可以使用this ready to use script,这可以为您节省一些工作(希望帮助信息足够描述)

答案 1 :(得分:2)

而不是IMAGENAME查找WINDOWTITLE(您将其定义为start的参数):

tasklist /fi "windowtitle eq "Process"

在现有的for循环中使用它。

您可以将/v添加到tasklist以获得详细输出,但您并不真正需要此功能。