我想管理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”。
任何解决方案?
答案 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
以获得详细输出,但您并不真正需要此功能。