首页 > 解决方案 > Windows Batch 如何从 txt 文件中删除特定单词

问题描述

我不知道如何删除一行中的一段文字。

我有一个批处理文件,可以在所选文件夹中创建我感兴趣的文件列表。

dir D:\pool\template_test>U:\Desktop\list.txt
findstr "Work_T" U:\Desktop\list.txt > U:\Desktop\tamplates.txt

输出:

2013-03-13  17:24               622 Work_T_tamplate1.fdf

如您所见,在最终文件中显示日期、时间、大小,但我只需要名称。我怎样才能做到这一点?

我尝试使用另一篇文章中的示例,但它不起作用:

for /f "tokens=3" %%A in (U:\Desktop\tamplates.txt) do findstr /C".dot" /C".pdf" /C".fdf" %%A

使用建议代码后的最终文件

标签: batch-filefor-loopfindstr

解决方案


所以你已经在斯蒂芬的评论中得到了答案

这些将包括对您的搜索,以下仅返回文件名:

cd /d "D:\pool\template"    
(@for /f %%i in ('dir /b "Work_T*.dot" "Work_T*.pdf" "Work_T*.fdf" ') do (
    @echo "%%i"
  )
)>"U:\Desktop\tamplates.txt"

但是,您也可能需要完整路径,因此这将包括文件的完整路径:

cd /d "D:\pool\template"    
(@for /f %%i in ('dir /b "Work_T*.dot" "Work_T*.pdf" "Work_T*.fdf" ') do (
    @echo "%%~fi"
  )
)>"U:\Desktop\tamplates.txt"

如果需要,添加/s到通过子文件夹进行递归。

编辑

对于 UNC 路径:

(@for /f %i in ('dir /b /a-d "\\tuesrna02\pool\template" ^| findstr /i "Work_T"') do (
    @echo %%i
  )
)>"U:\Desktop\tamplates.txt"

推荐阅读