Title解释说,我是C#和.NET的新手,我在程序中传递4个参数。
但是当我试图用args定义另一个变量作为上下文时,由于某种原因它总是null。
参数:“cmd. exe/K echo hi”我尝试了什么:
var var1 = args;
var var2 = args.Skip(1).ToString();
System.Console.WriteLine(var1);
System.Console.WriteLine(var2);
例外:
Shell> myProgram.exe cmd.exe /K echo hi
cmd.exe /K echo hi
/K echo hi
Shell>
结果:
Shell> myProgram.exe cmd.exe /K echo hi
# <- nothing here
Shell>
之后,我试着在visual studio 2022中读取变量,它们也是null。
完整代码:
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace sudo
{
class Program
{
static void sudo_start(string file, string argument)
{
Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.WorkingDirectory = ".";
startInfo.FileName = @file;
startInfo.Arguments = @argument;
//@"/C computerdefaults.exe"
process.StartInfo = startInfo;
process.Start();
}
static int Main(string[] args)
{
int var;
if (args.Length > 0)
{
var var1 = args;
var var2 = args.Skip(1).ToString();
System.Console.WriteLine(var1);
System.Console.WriteLine(var2);
//string argument = string.Join(" ", delFirst);
//sudo_start(args[0], argument);
var = 0;
}
else
{
System.Console.WriteLine(@"Error: No arguments given! example: sudo cmd.exe");
var = 1;
}
return var;
}
}
}
1条答案
按热度按时间pengsaosao1#
由于某种原因,重新启动修复了此问题。
更多细节请参见评论。