Batch file 更改从.bat文件启动的exe文件的默认图像名称

Batch file 更改从.bat文件启动的exe文件的默认图像名称,batch-file,Batch File,我在触发器上有一个exe文件(来自控制台应用程序),它将根据传递给main的参数执行不同的任务 假设传递的参数为1,则它将运行处理程序“handler1”。 如果传递的参数为2,则它将运行处理程序“handler2” 我有一个.bat文件,它将触发这个“batch.exe”文件,从而在vb应用程序中启动一些处理程序(我没有任何控件来修改代码) 此bat文件将在不同的时间调用,传递使应用程序运行差异处理程序的差异参数 因此,在handler的每个实例(不仅仅是batch.exe)的开始处,我想检查

我在触发器上有一个exe文件(来自控制台应用程序),它将根据传递给main的参数执行不同的任务

假设传递的参数为1,则它将运行处理程序“handler1”。 如果传递的参数为2,则它将运行处理程序“handler2”

我有一个.bat文件,它将触发这个“batch.exe”文件,从而在vb应用程序中启动一些处理程序(我没有任何控件来修改代码)

此bat文件将在不同的时间调用,传递使应用程序运行差异处理程序的差异参数

因此,在handler的每个实例(不仅仅是batch.exe)的开始处,我想检查前一个实例是否正在运行(如果是,那么我需要终止前一个实例),并且我需要从.bat文件执行此操作

我知道我们可以使用TASKKILL或一些等效命令从.bat文件中执行此操作,并传递“映像名”(此处映像名为“batch.exe”)

但这里的问题是,所有处理程序都将由同一个exe触发。因此,如果我杀死batch.exe,它可能也会杀死其他处理程序

因此,为了实现这一点,我们需要在从批处理代码启动exe文件时为不同的处理程序指定不同的名称

像 如果(参数传递==1) { 以“handler1”的身份运行batch.exe } else if(argumetn passed==2) { 以“handler2”的身份运行batch.exe }


这样我可以在需要时使用taskkill杀死handler1或handler2?

任务不清楚。如果你展示实际的代码,然后解释它,你可能会得到更好的答案。听起来你希望能够启动一个程序并得到它的Pid,这样你就可以在以后杀死它。下面是一个这样做的示例脚本@马特威廉姆森-谢谢你的回复。程序的第二个实例应该识别第一个实例并杀死它。第二个实例可能没有第一个实例的pid。所以这可能不适用于我的场景。intead of Pid如果我们可以更改“图像名称”(我不能使用默认名称,因为将有其他处理程序也使用相同的名称运行),那么第二个实例可以按该名称搜索所有进程并杀死它们。为什么不让批处理文件
在运行前将EXE复制为新名称。每个正在运行的实例都会有一个唯一的EXE名称,您可以通过传递修改后的EXE名称(每个实例都是唯一的)来更具选择性地使用TaskKill?@JamesL。-这解决了我的问题。很好的解决方案。谢谢