windows .bat脚本,用于搜索先前存在于同一目录中的文件

时间:2015-04-15 20:10:51

标签: batch-file scripting

我需要编写一个脚本来查找先前存在于同一目录中的相同文件。此脚本将作为计划作业运行,因此不需要内置重新运行功能:

  1. 查找给定目录中的文件。
  2. 如果没有文件,则返回0并退出。
  3. 如果文件存在,则存储它们并退出..
  4. 当脚本再次运行时(通过调度程序),查找同一目录中的文件,如果任何文件名与先前存储的任何文件匹配,则打印匹配的文件名并返回非零退出代码(1 )。
  5. 如果没有匹配,则释放先前存储的文件名并存储新文件名。返回0并退出。
  6. 有可能实现上述目标吗?我没有脚本背景,所以任何帮助都会有所帮助。

1 个答案:

答案 0 :(得分:0)

@ECHO Off
SETLOCAL
SET "targetdir=U:\destdir"
SET "savedir=U:\"
SET /a returnlevel=0
DIR /b "%targetdir%">"%savedir%\newlist.txt"
IF NOT exist "%savedir%\oldlist.txt" GOTO noold
:: Now compare
FINDSTR /i /l /x /c:":" /g:"%savedir%\oldlist.txt" "%savedir%\newlist.txt"
if ERRORLEVEL 1 (SET /a returnlevel=0) ELSE (SET /a returnlevel=1)

:noold
MOVE /y "%savedir%\newlist.txt" "%savedir%\oldlist.txt" >NUL 2>nul
EXIT /b %returnlevel%

GOTO :EOF

您需要更改targetdirsavedir的设置以适合您的具体情况。