【问题标题】:windows .bat script to search for files that existed in the same directory previouslywindows .bat 脚本用于搜索以前存在于同一目录中的文件
【发布时间】:2015-04-15 20:10:51
【问题描述】:

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

  1. 在给定目录中查找文件。
  2. 如果不存在文件,则返回 0 并退出。
  3. 如果文件存在,则存储它们并退出..
  4. 当脚本再次运行(通过调度程序)时,在同一目录中查找文件,如果任何文件名与之前存储的任何文件匹配,则打印匹配的文件名并返回非零退出代码(1 )。
  5. 如果没有匹配,则释放之前存储的文件名并存储新的文件名。返回 0 并退出。

是否有可能实现上述目标?我没有脚本背景,所以任何帮助都会有所帮助。

【问题讨论】:

  • 这绝对是可能的,这甚至是您将使用的算法。我建议查看dir /?for /?findstr /? 的输出,同时记住> 在覆盖任何现有数据的同时写入新文件,>> 添加到文件而不覆盖任何内容。
  • 谢谢。这些非常有用。

标签: batch-file scripting


【解决方案1】:
@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 的设置以适应您的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-12
    • 2010-09-29
    • 2022-07-31
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 2023-03-13
    相关资源
    最近更新 更多