there aren't any tools that do exactly what you want, here's some rough c# that will do what you want (using PKHeX.Core.dll)
var path = @"your path goes here";
var files = Directory.EnumerateFiles(path, "*", 0);
foreach (var f in files)
{
var fi = new FileInfo(f);
if (fi.Extension != ".pk6")
continue;
if (!PKX.IsPKM(fi.Length))
continue;
var data = File.ReadAllBytes(f);
var pk6 = new PK6(data);
var pk7 = pk6.ConvertToPK7();
File.WriteAllBytes(f.Replace(".pk6", ".pk7"), pk7.DecryptedBoxData);
}