0

我有数千个按序列号和测试产生的日期/时间列出的文件,并且都在同一个目录中。有些被测试了两次。我想找到那些重复的序列号并将它们列在一个文本文件中。对于测试两次的数字,前 12 个字符将是相同的。

ALT_1049670_20130302-103355_Results.log
ALT_1049669_20130302-103022_Results.log --\
ALT_1049669_20130302-102811_Results.log ---- tested twice

我从这段代码开始:

@echo off 
setlocal enabledelayedexpansion
for %%a in (*) do (
set dupl=%%~na
set dupl=!dupl:~0,12!
echo !dupl! >> dupl.txt
)

但它列出了所有文件(至少前 12 个字符)。我不知道如何让它进行比较,只列出重复项。

请帮忙。

4

1 回答 1

0

知道了!

@echo off 
setlocal enabledelayedexpansion
for %%a in (*) do (
set dupl=%%~na
set dupl=%%a
set dupl=!dupl:~4,7!
echo !dupl! >> dupl.txt
)
call C:\PHP\PHP.exe dupl.php
notepad duplicate.txt

对 dupl.php 的调用

<?php
$file = file('dupl.txt');
$a = array();

foreach($file as $f)
{
++$a[strtolower(trim($f))];
}
foreach($a as $key => $value)
{
if($value > 1)
{
$f = fopen("duplicate.txt", "a");
echo $key . PHP_EOL;
fwrite($f, $key . "\r\n");  
}
}
fclose($f);
于 2013-07-09T15:14:50.193 回答