-3

我正在编写一个批处理文件,该文件逐个验证目录中的 .txt 文件,如果文件重复,则将此重复文件移动到另一个目录。谁能告诉我是否存在比这样做更快的方式?

提前致谢!

4

2 回答 2

2

假设您的意思是要比较文本文件的内容,而不是名称:

@echo off
setlocal enabledelayedexpansion
for %%x in (*.txt) do for %%y in (*.txt) do (
  if "%%~x" neq "%%~y" (
    echo n | comp "%%~x" "%%~y"
    if !errorlecel!==0 (
      echo Duplicat found.
      set newDir=%%~nx_Duplicate
      if not exist "!newDir!" md "!newDir!"
      move "%%~y" "!newDir!"
    )
  )
)

上面的代码将搜索每个文件的重复项并将它们放在一个名为 FILENAME_Duplicate 的目录中。因此,如果它比较thisfile.txtthatfile.txt发现它们是重复的,它将移动thatfile.txt到一个名为thisfile_Duplicate.

于 2012-09-04T19:20:28.433 回答
1

Create checksums of all files with md5sum (http://en.wikipedia.org/wiki/Md5sum) and compare checksums instead of files. It'll be a lot faster.

于 2012-09-06T09:55:23.000 回答