我正在尝试编写一个简单的批处理脚本,用于重命名,移动和存储程序的崩溃日志文件。日志文件使用日期戳和时间戳命名,因此最终结果是一个文件夹,其中包含许多具有不同日期/时间戳的日志文件。然后,我想在列表中列出该文件夹的内容。我可以执行以下操作:
dir /b >> list.txt
问题在于这种方法每次创建新的日志文件时都会列出文件夹中的所有文件。例如,我在文件夹中有以下日志文件:
log1
log2
log3
程序崩溃后,将创建一个新的日志文件log4
,运行脚本时,列表显示以下内容:
log1
log2
log3
log1
log2
log3
log4
有什么方法可以将新的日志文件仅追加到列表中吗?
我同意@Daniel和@Eric,在我的头上,我想不出一种情况,即您不能仅使用> redirect来用所有现有日志覆盖list.txt ...
如果出于某种原因,您可以执行以下操作:
@echo off
if not exist list.txt type nul>list.txt
for /f "tokens=*" %%a in ('dir /b') do call :findDuplicate "%%a"
goto:eof
:findDuplicate
type list.txt | find %1>nul
if %ERRORLEVEL% EQU 0 (
:: file already in list.txt, so don't append
goto:eof
) else (
:: file wasn't found, append to list.txt
echo %~1 >> list.txt
)
goto:eof
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句