在我的 .NET Core 控制台应用程序中,我收到字符串数组形式的多个命令,并希望将它们作为控制台命令执行(如果可能,但不是硬要求,并在我自己的应用程序中显示它们的输出)。
首先,我尝试解析每个命令以分离它们的名称和参数并将它们放入ProcessStartInfo. 但是,某些命令不起作用(即使是简单的命令,如echo "Hello")。
现在我转而调用 Powershell,如下所示:
static IEnumerable<ProcessStartInfo> ParseCommands(string[] args)
{
return args
.Skip(1)
.Select(q => new ProcessStartInfo()
{
FileName = "powershell",
Arguments = q,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
}).ToList();
}
static void RunCommand(ProcessStartInfo processInfo)
{
Console.WriteLine($"{processInfo.Arguments}");
var process = new Process()
{
StartInfo = processInfo,
};
process.Start();
while (!process.StandardOutput.EndOfStream)
{
Console.WriteLine(process.StandardOutput.ReadLine());
}
process.WaitForExit();
}
Run Code Online (Sandbox Code Playgroud)
问题是我不认为这个可以在 Linux 或 MacOS 上运行。是否有任何“标准”方法来告诉我的应用程序“像控制台命令一样运行它”?
这是我当前的代码通过使用Platform来确定控制台命令,请随时告诉我是否有更好的方法:
static IEnumerable<ProcessStartInfo> ParseCommands(string[] args)
{
var argsPrepend …Run Code Online (Sandbox Code Playgroud) 我正在开发一个 C# WPF 应用程序,它将一组单词(大约 17,000 个单词)组合在一起,并生成一个与 mp3 文件匹配的播放列表(每个 mp3 文件都是一个单词)。
目前,每个 mp3 文件在其波形结束时都有 1 秒到 30 秒之间的随机静音。
我希望能够以编程方式从文件末尾删除静音波。
使用 NAudio for .NET 如何删除 mp3 文件末尾的静音波?
我构建了一个小脚本,用于检查具有给定名称的USB Stick是否已插入计算机,但现在我想围绕此脚本构建一个服务,以观察Stick是否插入.起初我尝试用filewatcher执行此操作并在Stick上创建一个文件,但是如果从PC上取下棒并重新插入filewatcher dosent意识到它.以下脚本检查Stick是否插入,但我需要一个脚本来循环此DriveInfo.GetDrive函数.我不知道最好的方法是在这个函数周围建立一个10秒的定时器循环,或者.NET Framework中是否有可移动设备的观察者类.脚本来了:
public static void Main()
{
Run();
}
public static void Run()
{
var drives = DriveInfo.GetDrives()
.Where(drive => drive.IsReady && drive.DriveType == DriveType.Removable);
if (drives.Count() > 0)
{
foreach (var drive in drives)
{
if (drive.VolumeLabel == "TESTLABEL") Console.WriteLine("USB Stick is plugged in");
}
}
}
Run Code Online (Sandbox Code Playgroud) 有没有一种方法可以启动/停止其他网络中服务器的Windows服务
(不是\\<server name>)来自asp.net页面?
我尝试使用ServiceController,但只有在同一网络中才可以使用。
这几天我学习了一些关于 ASP 的知识。我想将此 PHP 代码行转换为 ASP,但我有点坚持:
$online = exec('netstat -a -n |find "5816" |find "ESTABLISHED" /c') +1;
Run Code Online (Sandbox Code Playgroud)
我尝试创建一个变量来存储数据,但无法弄清楚如何检查端口 5816 并计算连接数。感谢帮助!
它基本上应该是在 cmd 中运行的命令来检查端口和否。由它建立的连接!
我有一台多宿主 Windows 机器(Windows Server 2016),我想确保出站流量永远不会通过辅助网络接口(通过 C# 编程)。
我的路由表中有 2 个网络接口的默认条目:
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.31.32.1 172.31.44.180 15
0.0.0.0 0.0.0.0 172.31.96.1 172.31.96.230 15
Run Code Online (Sandbox Code Playgroud)
我认为永久删除辅助网络接口的条目对于我的用例就足够了。我只希望此条目之后存在:
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.31.32.1 172.31.44.180 15
Run Code Online (Sandbox Code Playgroud)
我找到了 C# APIDeleteIpForwardEntry来删除路由,但我不知道如何使此删除永久化,以便重新启动机器不会撤消我的更改。
任何帮助将不胜感激。