질문을 게시하는 것은 처음입니다. 나는 둘 다 csharp와 powershell에 익숙하다. 제 영어가 능숙하지 못하다면 제발 저를 참아주십시오. 나는 내 csharp 코드를 powershell로 변환하려했지만 성공하지 못했습니다. PowerShell에 관한 문서를 조사해 보았고 불행하게도 그 중 하나를 시도해 보았습니다. 내 csharp 코드는 Visual Studio 2010에서 작동하지만 Powershell에 포함시키고 사용할 수는 없습니다. 아래의 코드는 taskmanager의 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);
}
}
}
}
, 난 그냥 말에이 코드의 구걸과
Add-Type -TypeDefinition $source
[GET_TASK.Program]::Main()
에서
$source = @"
를 넣어 코드는 작동하지만 작동하지 않습니다. PowerShell 버전 1을 사용하고 있습니다. 제 C# 코드를 변환하는 데 도움이됩니다.
당신이 오류를 얻고있다 (당신이 DLL을 만들고
[Reflection.Assembly]::LoadFile("c:\myddl.dll")
사용해야하는 V1을 위해, 단지 파워 쉘의 V2 또는 V3) 추가 형의 사용에 대한 귀하의 코드? PowerShell을 실행하면 어떻게됩니까? "작동하지 않는다"이상으로 우리에게 아무 것도 말하지 않으면 우리는 당신을 도울 수 없습니다. 또한 여기에서 수행되는 활동 (프로세스 ID 가져 오기 및 파일 작성)은 내장 cmdlet을 사용하여 PowerShell에서 직접 수행하는 것이 가장 쉽습니다. –PowerShell V2에'Add-Type'이 추가 되었으나 존재하지 않습니다 (따라서 PSH V1에서는 실패합니다). PSH V1이 이제 꽤 오래 되었기 때문에 (그리고 V2의 향상된 PSH가 대량으로) V2로 커밋하는 것으로 생각하십니까? – Richard