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