如何获取以批处理和PowerShell方式启动程序的脚本的脚本名称?

时间:2016-01-26 21:13:54

标签: c# windows powershell batch-file cmd

所以我有一个情况,我将运行一个脚本,让我们称之为test.bat,这个脚本将在某个时候运行我的C#程序myprogram.exe。我需要一种方法来获取调用myprogram.exe的脚本的名称,这样当我看到该函数的输出时,它是test.bat

现在我正在使用此代码:

string GetParentProcessName()
{
    int myId = Process.GetCurrentProcess().Id;
    string query = string.Format("SELECT ParentProcessId FROM Win32_Process WHERE ProcessId = {0}", myId);
    ManagementObjectSearcher search = new ManagementObjectSearcher("root\\CIMV2", query);
    var results = search.Get().GetEnumerator();
    results.MoveNext();
    var queryObj = results.Current;
    var parentId = (uint)queryObj["ParentProcessId"];
    Process parent = Process.GetProcessById((int)parentId);
    Console.WriteLine("My parent process name is: {0}", parent.ProcessName);
    return parent.ProcessName;
}

但是,在命令行中运行test.bat时的输出是“cmd”,而不是“test”或“test.bat”。

我该怎么做?

0 个答案:

没有答案