[英]detect arguments from command line
我需要的命令行如下:
sortfolder.exe -6.70_Extensions -7
其中7
在foreach(var file in files.OrderByDescending(x=>x).Skip(7))
和-6.70_Extensions
在var di = new DirectoryInfo("C:\\Work\\6.70_Extensions\\Build");
和static string path = "C:\\Work\\6.70_Extensions\\Build\\"
排序文件夹.exe:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace sortfolder
{
class Program
{
static string path = "C:\\Work\\6.70_Extensions\\Build\\";
static void Main(string[] args)
{
var di = new DirectoryInfo("C:\\Work\\6.70_Extensions\\Build");
foreach (var file in di.GetFiles("*", SearchOption.AllDirectories))
file.Attributes &= ~FileAttributes.ReadOnly;
var files = Directory.GetDirectories(path, "SASE Lab Tools.*");
foreach(var file in files)
Console.WriteLine(file);
foreach(var file in files.OrderByDescending(x=>x).Skip(7))
Console.WriteLine(file);
foreach(var file in files.OrderByDescending(x=>x).Skip(7))
Directory.Delete(file, true);
}
}
}
所以我的命令行是这样的: sortfolder.exe -version -integer
这个version
可以是任何形式:
6.70_Extensions
6.80_Extensions
7.00_Main
7.20_Main
8.00_Extensions
etc
和integer
可以是任何 integer
我怎样才能做到这一点?
编辑:
浏览完这个
我编辑了我的代码:
namespace sortfolder
{
class Program
{
static void Main(string[] args)
{
var di = new DirectoryInfo("C:\\Work\\{0}\\Build", args[0]);
string path = ("C:\\Work\\{0}\\Build\\", args[0]) ;
foreach (var file in di.GetFiles("*", SearchOption.AllDirectories))
file.Attributes &= ~FileAttributes.ReadOnly;
var files = Directory.GetDirectories(path, "SASE Lab Tools.*");
foreach(var file in files)
Console.WriteLine(file);
foreach(var file in files.OrderByDescending(x=>x).Skip({0}), args[1])
Console.WriteLine(file);
foreach(var file in files.OrderByDescending(x=>x).Skip({0}), args[1])
Directory.Delete(file, true);
}
}
}
我的语法有什么不对的地方??
看到Main()
中的string[] args
了吗? 好好利用它。
http://msdn.microsoft.com/en-us/library/acy3edy3.aspx
上面的链接有所有的解释和例子来帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.