Bat文件目录列表,删除文本条目

时间:2012-06-06 14:16:37

标签: batch-file

我有一个简单的bat文件,仅列出目录文件。

if exist "output.txt" del "output.txt" 
dir /a /b /-p /O:N >>output.txt

创建文本文件时,它还会在文本文件中添加bat文件和output.txt条目。我想删除这两个条目以使最终列表清洁。

谢谢,希望我能正确解释

3 个答案:

答案 0 :(得分:2)

这是对Seki答案的一个小改进:

1)使用覆盖重定向而不是追加

2)使用单个FINDSTR消除两个文件

3)使用%~nx0获取正在运行的批处理文件的名称

@dir /a /b /-p /o:n|findstr /vi /c:"output.txt" /c:"%~nx0" >output.txt

答案 1 :(得分:1)

假设批处理文件名为list.bat,在findstr的帮助下,您可以从dir输出中排除这两个文件。

替换第二行
dir /a /b /-p /O:N |findstr /vi output.txt|findstr /vi list.bat >>output.txt

BTW,if exist...行无用,因为output.txt命令重定向重新创建文件dir,然后才开始列出文件。

答案 2 :(得分:1)

以下版本不需要FINDSTR,因此速度更快:

@echo off
(for %%f in (*.*) do if "%%f" neq "%~NX0" if "%%f" neq "output.txt" echo %%f) > output.txt