【发布时间】:2016-04-12 14:56:29
【问题描述】:
是否有任何 .Net 方法可以从 windows 命令字符串中提取路径和文件名而不包含参数?
var p = @"c:\somefolder\someConsoleApp.exe -k Something -i -user Bob"
每次对象中有命令时,我都尝试使用 FileInfo、Path.GetFileName 和其他方法。
例如,
var fileName = System.IO.Path.GetFileName(p);
Console.WriteLine(fileName);
输出
someConsoleApp.exe -k Something -i -user Bob
我只想获得“someConsoleApp.exe”,最好能够访问到的参数。
ProcessStartInfo 或许能以某种方式做到这一点,但它也有同样的问题,FileName 包含整个内容,而 Arguments 为空。
【问题讨论】:
-
不,因为您的文件可以具有以下名称:
someConsoleApp.exe -k Something -i -user Bob。你必须手动解析它 -
你为什么不先把这些字符串分开?
-
你必须处理exe路径中的潜在空格吗?如果是这样,路径会被引用吗?这真的是唯一可以阻止你在空间上分裂的事情。
-
拆分字符串并获取第一项,这应该是您的 exe 的名称
-
@Pankaj 除非 exe 名称中有空格。
标签: c# command-prompt