我正在尝试制作一个批处理文件,以基于文本文件中的列表查找文件名(每行一个文件名,不带扩展名)。
该批处理文件需要在文件夹+子文件夹中进行搜索,并将其输出为DIDN '查找文本文件(Missing.txt)`
echo off
for /f "tokens=*" %%i in (Filelist.txt) DO echo %%i>InList.txt
(
IF NOT EXIST %%i (echo %%i>Missing.txt)
)
好的,所以现在InList.txt具有Filelist.txt中的所有文件名,无论它们是否存在,
并且Missing.txt文件中都有%i
好的,这是我用来解决问题的代码 @echo off for /f "tokens=*" %%i in (Filelist.txt) DO ( IF EXIST %%i.* (echo %%i>>InList.txt) ELSE echo %%i>>Missing.txt )
我在Filelist.txt中的文件名没有扩展名,因此我在IF语句中的%% i之后添加了。*,但如果您的文件列表具有扩展名,则可以使用以下解决方案
您误解了for循环的格式。您还需要使用>>
追加到文本文件,而不是将>
其覆盖在文件上。按照您原来的逻辑,其中InList.txt
将包含所有文件,并且Missing.txt
仅包含丢失的文件:
@echo off
for /f "tokens=*" %%i in (Filelist.txt) DO (
echo %%i>>InList.txt
IF NOT EXIST %%i (echo %%i>>Missing.txt)
)
但是如果InList.txt
仅应包含确实存在的文件:
@echo off
for /f "tokens=*" %%i in (Filelist.txt) DO (
IF EXIST %%i (echo %%i>>InList.txt) ELSE echo %%i>>Missing.txt
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句