首页 > 代码库 > 控制台 批量修改文件名

控制台 批量修改文件名

 static void Main(string[] args)        {            string text = @"__________________用于批量修改文件_______________________    注意事项: 1.在CMD 中执行命令               2.修改的目标文件,是以.ts 结尾              3.一共4个参数,              4.如果参数中存在空格,则用 引号  包含参数                  args[0] 参数  :                  目录    args[1] 参数 :                   文件名    args[2] 参数:                要保存的目标文件,从 begin 开始计数.如果找到++    args[3] 参数:                将要寻找的目标文件,从start 开始,如果找到++    如果文件,连续断断续续, 则 一段一段的执行.请不要多次执行_________________________________________________________例如:    C:\Users\q\Desktop\ttt\ChongJiChengShi.1.ts    编辑的命令为:         cmd PCName.exe C:\Users\q\Desktop\ttt ChongJiChengShi. 5 8*****************************************************************************    ";            var i = 0;            Console.WriteLine(args.Length);            if (args.Length != 5) Console.Write(@" 例如:   cmd PCName.exe C:\Users\q\Desktop\ttt ChongJiChengShi. 5 8");            //C:\Users\q\Desktop\ttt            //ChongJiChengShi.1.ts            try            {                var path = args[0];                var file = args[1];                int begin = int.Parse(args[2]);                int start = int.Parse(args[3]);                //var path = @"C:\Users\亚龙\Desktop\ttt";                //var file = "ChongJiChengShi.";                //int begin = 5;                //int start = 8;                if (!Directory.Exists(path))                    throw new Exception("不存在该目录");                string[] directory = Directory.GetFiles(path);                             var orderbyDot = directory.Where(e => e.Contains(".ts"))                    .ToDictionary(e => int.Parse(e.Substring(e.IndexOf(".") + 1, e.LastIndexOf(".") - 1 - e.IndexOf(".")))).OrderBy(e => e.Key);                foreach (var item in orderbyDot)                {                    if (Path.GetFileNameWithoutExtension(item.Value) == (file + start))                    {                        var saveFile = Path.Combine(path, file + begin + Path.GetExtension(item.Value));                        var sourceFile = Path.Combine(path, item.Value);                        var bakFile = Path.Combine(path, "bak",  Path.GetFileName(item.Value));                        if (!Directory.Exists(Path.Combine(path, "bak")))                        {                            Directory.CreateDirectory(Path.Combine(path, "bak"));                        }                        if (File.Exists(saveFile))                        {                            throw new Exception("已存在该目标文件: [" + saveFile + "]");                        }                        File.Copy(sourceFile, saveFile);                        File.Move(sourceFile, bakFile);                        //File.Delete(sourceFile);                        start++;                        begin++;                        i++;                    }                }            }            catch (Exception ex)            {                Console.WriteLine(text);                Console.WriteLine("********************ERROR Message***************************");                Console.WriteLine(ex.Message);            }            Console.WriteLine("批量修改文件名结束: 一共执行了" + i + "次");                    }

 

 

如果文件序列是断的,

1,2,3,4 ,8,9,10,15,16,17,18,19

需要执行两次

Part 1

 cmd PCName.exe C:\Users\q\Desktop\ttt ChongJiChengShi. 5 8
结果:
1,2,3,4,5,6,7,15,16,17,18,19

Part 2
 cmd PCName.exe C:\Users\q\Desktop\ttt ChongJiChengShi. 8 15
结果:
1,2,3,4,5,6,7,8,9,10,11,12

 

控制台 批量修改文件名