![使用所有文件名的列表,如果文件夹中不包含文件名,则输出丢失的文件的名称(批处理脚本)](https://linux22.com/image/1585351/%E4%BD%BF%E7%94%A8%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E5%90%8D%E7%9A%84%E5%88%97%E8%A1%A8%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E4%B8%8D%E5%8C%85%E5%90%AB%E6%96%87%E4%BB%B6%E5%90%8D%EF%BC%8C%E5%88%99%E8%BE%93%E5%87%BA%E4%B8%A2%E5%A4%B1%E7%9A%84%E6%96%87%E4%BB%B6%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%88%E6%89%B9%E5%A4%84%E7%90%86%E8%84%9A%E6%9C%AC%EF%BC%89.png)
我想要:
比较从
C:\folder\filelist.txt
到 的文件名C:\folder\filenames
。输出缺失文件的名称到
C:\folder\filenames
Missing.txt。
代码:
@echo off
for /f "tokens=*" %%i in (C:\folder\filelist.txt) DO (
IF EXIST %%i (echo %%i>>C:\folder\filenames)
ELSE echo %%i>>C:\folder\Missing.txt
我的 Missing.txt 输出列出了 filelist.txt 中包含的所有文件名,而不是仅列出其中缺少的文件名C:\folder\filenames
。
答案1
如果您的目标只是识别丢失的文件,则请使用 NOT 和 EXIST。
for /f "tokens=*" %%i in (C:\folder\filelist.txt) DO (
IF NOT EXIST "c:\folder\%%~i" (echo.Missing "%%~i">>C:\folder\missing.txt)
)