У меня есть сервер под управлением Windows Server 2003 R2 Enterprise с каталогами от 50 000 до 250 000 текстовых файлов по 1 КБ каждый. Имена файлов являются последовательными (например, MLLP000001.rcv, MLLP000002.rcv и т. Д.), И идентичные файлы будут последовательными. Как только последующие файлы различаются, я могу ожидать, что я не получу другой идентичный файл.
Мне нужен скрипт, который будет делать следующее, но я не знаю, с чего начать.
for each file in the target directory index 'i'
{
for each file in the target directory index 'j' = i+1
{
compare the hash values of files i and j
if the hashes are identical
delete file j
if the hashes differ
set i = j // to skip past the files that are now deleted
break
}
}
Я пробовал пакетные сценарии DOS, но это действительно громоздко, я не могу вырваться из внутреннего цикла, и он отключается сам по себе, потому что внешний цикл имеет список файлов в каталоге, но этот список постоянно меняется. Насколько мне известно, VBScript не имеет хэш-функции.