我有一个简单的bat文件,仅列出目录文件。
if exist "output.txt" del "output.txt"
dir /a /b /-p /O:N >>output.txt
创建文本文件时,它还会在文本文件中添加bat文件和output.txt条目。我想删除这两个条目以使最终列表清洁。
谢谢,希望我能正确解释
答案 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