我有一个字符串,其中包含要传递给另一个可执行文件的命令行参数,我需要提取包含各个参数的字符串[],方法与在命令行中指定命令时C#相同.通过反射执行另一个程序集入口点时将使用字符串[].
这有标准功能吗?或者是否有正确分割参数的首选方法(正则表达式?)?它必须处理'''可能正确包含空格的分隔字符串,所以我不能只拆分''.
示例字符串:
string parameterString = @"/src:""C:\tmp\Some Folder\Sub Folder"" /users:""abcdefg@hijkl.com"" tasks:""SomeTask,Some Other Task"" -someParam foo";
Run Code Online (Sandbox Code Playgroud)
示例结果:
string[] parameterArray = new string[] {
@"/src:C:\tmp\Some Folder\Sub Folder",
@"/users:abcdefg@hijkl.com",
@"tasks:SomeTask,Some Other Task",
@"-someParam",
@"foo"
};
Run Code Online (Sandbox Code Playgroud)
我不需要命令行解析库,只需要获取应生成的String [].
更新:我必须更改预期结果以匹配C#实际生成的内容(删除了拆分字符串中的额外")
我正在寻找命令行参数解析器,例如来自http://www.sellsbrothers.com/tools/Genghis/的 "命令行解析器" .
我正在寻找的功能:
PS: "命令行解析器"非常好,我真的很喜欢它的设计,但没有文档,没有新的更新,我无法弄清楚做某些事情,如如何检查所需的参数.
我正在寻找一种方法,我可以将命令行参数解析到我的WPF应用程序中,只需一种方法来读取用户传递的参数的值.
举个例子
application.exe /setTime 5
Run Code Online (Sandbox Code Playgroud)
有没有办法让我有一些代码我可以说:
MessageBox.Show(arg("setTime"));
Run Code Online (Sandbox Code Playgroud)
哪个会输出 5
工作方案
我正在重新设计命令行应用程序,并正在寻找一种方法来使其使用更直观.传递给命令行应用程序的参数格式是否有任何约定?或者人们发现有用的任何其他方法?
我有一个名为MyTool.exe的控制台应用程序
什么是收集传递给这个控制台应用程序了命名参数的最简单方法,然后把它们放在一个Dictionarty<string, string>()里面会有参数名称作为键和值作为参数?
例如:
MyTool foo=123432 bar=Alora barFoo=45.9
Run Code Online (Sandbox Code Playgroud)
我应该能够获得一本字典:
MyArguments["foo"]=123432
MyArguments["bar"]="Alora"
MyArguments["barFoo"]="45.9"
Run Code Online (Sandbox Code Playgroud) 我正在尝试在C#应用程序中读取用户参数.我知道如何根据位置阅读它们
string[] args = Environment.GetCommandLineArgs();
Run Code Online (Sandbox Code Playgroud)
但是我想从开关中读取它们
app.exe /f /d:foo
Run Code Online (Sandbox Code Playgroud)
我真的很难找到关于这样做的任何信息......
我是C#的初学者,我有一个文件夹,我正在从中读取文件.
我想读取位于解决方案文件的父文件夹中的文件.我该怎么做呢?
string path = "";
StreamReader sr = new StreamReader(path);
Run Code Online (Sandbox Code Playgroud)
所以如果我的文件XXX.sln在C:\X0\A\XXX\那里,那么读取.txt文件C:\X0\A\.
敬礼,
我有一个似乎是一个简单的问题,但非常不是.我想取一个字符串并将其拆分为命令行参数.几周来我一直在谷歌搜索这个问题,找不到任何适合我需要的东西.
例如,行:
--foo=bar -foo="bar test" --foo "bar \"test\"" --foo bar
会分成:( 按此顺序)
--foo=bar-foo=bar test--foobar "test"--foobar编辑
是的我意识到--foo一次使用更多.这是分裂/标记化.不解析,这是下一步.当我去解析时,我不在乎是否会出错.我现在要做的是将字符串转换为数组状态,然后我可以将其输入Mono.Options
编辑2
阅读这个例子.这就是我想要实现的目标.只是那个.
这是来自一个新的C#家伙,
我一直在这里提出不同的问题,但我没有发现任何直接回答我需要知道的事情.
我有一个控制台应用程序,我想通过命令行传递参数.这是我到目前为止,它正在为一个论点工作,现在我要添加另一个,但我似乎无法弄清楚从哪里开始.
static void Main(string[] args)
{
if (args == null || args.Length== 0)
{
Console.WriteLine("that's not it");
help();
}
else
{
for (int i = 0; i < args.Length; i++)
{
backupfolder = args[i];
}
checks();
}
}
Run Code Online (Sandbox Code Playgroud)
如果我从我的其他声明中取出所有内容,我该如何设置args是什么并分配?以下工作吗?
static void Main(string[] args)
{
if (args == null || args.Length== 0)
{
Console.WriteLine("that's not it");
help();
}
else
{
string backupfolder = args[0];
string filetype = args[1];
checks();
}
}
Run Code Online (Sandbox Code Playgroud) c# ×8
.net ×4
command-line ×4
arguments ×1
file ×1
io ×1
parsing ×1
path ×1
scala ×1
streamreader ×1
string ×1
text-parsing ×1
wpf ×1