這是我第一次發佈問題。我對csharp和powershell都是新手。如果我的英語不好,請耐心等待。 我一直在嘗試將我的csharp代碼轉換爲PowerShell,但我不成功。我試圖研究有關PowerShell的文檔,並嘗試其中每一個,不幸的是,沒有爲我工作。我的csharp代碼在Visual Studio 2010中工作,但我無法在PowerShell中嵌入和工作。 下面的代碼只是捕獲任務管理器的PID,並將其寫入帶有時間和日期戳的記事本。 任何幫助將不勝感激。試圖在PowerShell v1中嵌入C#代碼
我CSHARP代碼:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace GET_TASK
{
class Program
{
static void Main(string[] args)
{
var processList = Process.GetProcessesByName("taskmgr");
foreach (var process in processList)
{
string myPath = "C:/powershell/GET_TASK"; //change data path as needed
FileStream logfile;
//log program process
logfile = new FileStream(myPath + "/logfile.txt", FileMode.Append, FileAccess.Write);
TextWriter oldLog = Console.Out;
StreamWriter writelog;
writelog = new StreamWriter(logfile);
DateTime time = DateTime.Now;
string format = "MMM ddd d HH:mm yyyy";
Console.SetOut(writelog);
// print out the process id
Console.WriteLine("Process Id=" + process.Id + " - " + time.ToString(format));
Console.SetOut(oldLog);
writelog.Close();
System.Environment.Exit(0);
}
}
}
}
在我的PowerShell代碼,我只是把
$source = @"
這段代碼的乞討和
Add-Type -TypeDefinition $source
[GET_TASK.Program]::Main()
在的結束代碼,但它不起作用。我正在使用Powershell版本1.請幫助轉換我的C#代碼。
您是否收到任何錯誤代碼?當你運行PowerShell時會發生什麼?如果您不告訴我們任何超過「不起作用」的事情,我們都無法幫助您。此外,在這裏執行的活動(獲取進程id和寫入文件)在使用內置cmdlet的powershell中直接執行起來肯定更容易。 –
'添加類型'在PowerShell V2中添加,它不存在(所以在PSH V1中會失敗)。由於PSH V1現在已經很老了(並且V2大大增強了PSH),您是否考慮過承諾V2? – Richard