Java 在不丢失参数的情况下从windows服务执行bat文件

Java 在不丢失参数的情况下从windows服务执行bat文件,java,c#,batch-file,cmd,windows-services,Java,C#,Batch File,Cmd,Windows Services,我必须在C#windows服务中执行bat文件。bat文件执行带有一些参数的jar文件。这样做没有任何问题 但是我注意到执行bat文件之间有一个差异: java -Dspring.profiles.active=postgresql ^ -Xmx1G -Xms1G ^ -jar C:\PATH\TEST.jar 1。通过windows服务: 当我查询Win32_进程时,我能够查找开始参数 2。不通过windows服务(例如双击bat文件): 开始参数未在查询Win32_进程中列

我必须在C#windows服务中执行bat文件。bat文件执行带有一些参数的jar文件。这样做没有任何问题

但是我注意到执行bat文件之间有一个差异:

java -Dspring.profiles.active=postgresql ^
    -Xmx1G -Xms1G ^
    -jar C:\PATH\TEST.jar
1。通过windows服务: 当我查询Win32_进程时,我能够查找开始参数

2。不通过windows服务(例如双击bat文件): 开始参数未在查询Win32_进程中列出。但是bat中的jar文件是用参数正确启动的

如何从c#windows服务执行bat文件,以便稍后查询详细信息

我当前的代码:

Process p = new Process();
p.StartInfo.FileName = "BAT-PATH";
p.StartInfo.RedirectStandardOutput = false;
p.StartInfo.UseShellExecute = false;
p.Start();
bat文件的内容:

java -Dspring.profiles.active=postgresql ^
    -Xmx1G -Xms1G ^
    -jar C:\PATH\TEST.jar

“这样我以后就可以查询细节了”这到底是什么意思?您想要接收/检查jar文件的输出,这是查询部分吗?还有关于标题。。。它不应该失去争论。如果您将bat作为
Process
运行,它会做它所做的事情(那么结果对您来说是什么呢?),这不是和您的第1点相同的事情吗?如果情况变得更糟,只需将bat的文本解析为字符串,并将Java.exe本身作为进程运行,将提取的字符串作为进程参数。我想查询所有正在运行的进程,并检查特定的jar是否已经在运行。我在Win32_进程上执行WMI查询,并查看命令行参数。在第2点中,其工作正常,但在第1点中不工作(因为缺少命令行数据)