好的,在使用%0
的批处理文件中,将返回批处理文件的位置和名称。 E.g。
call %0 "Arguments"
这将导致批处理文件使用指定的参数调用自身。虽然我的要求有点不同,但我想知道是否有办法在C#中做到这一点。基本上,我想要用户运行的可执行文件的名称来启动我的程序。
批量使用时,用户可以重命名程序,但由于C#是面向对象的,因此不需要这样做。然后到那里仍然有一些旧方法来做到这一点。
提前致谢,Mona。
答案 0 :(得分:3)
Environment.GetCommandLineArgs()
返回一个数组不同的命令行参数,分别对应%0
,%1
,....
因此,您可以使用Environment.GetCommandLineArgs()[0]
获取已启动的流程。
(如果我没记错的话,这个技术有一个问题:这可能是8.3名MYAPPL~1.EXE
而不是全名,具体取决于程序的启动方式。幸运的是,现在很少使用这些技术。< / p>
答案 1 :(得分:1)
这可以帮助您MSDN
默认应用程序域的友好名称是文件名 进程可执行文件。例如,如果可执行文件用于 启动过程是“c:\ MyAppDirectory \ MyAssembly.exe”,友好 默认应用程序域的名称是“MyAssembly.exe”。
System.AppDomain.CurrentDomain.FriendlyName
我认为它回答了这个问题:
我想要用户运行的可执行文件的名称来启动我的程序。
答案 2 :(得分:1)
您可以在Assembly.GetExecutingAssembly().Location
中使用Main
。