我想知道除扩展名之外,如何显示目录中的所有文件。列出除扩展名外的目录中的所有文件
实施例: .BAT
我的代码:
Dir /ah-d /b /s "%temp%" >>"Temp.TxT"
结果:
Folder123
image.jpg
TESTE.bat
abc.TMP
结果我想:
Folder123
image.jpg
abc.TMP
注:其他文件可能会有所不同扩展名。
我想知道除扩展名之外,如何显示目录中的所有文件。列出除扩展名外的目录中的所有文件
实施例: .BAT
我的代码:
Dir /ah-d /b /s "%temp%" >>"Temp.TxT"
结果:
Folder123
image.jpg
TESTE.bat
abc.TMP
结果我想:
Folder123
image.jpg
abc.TMP
注:其他文件可能会有所不同扩展名。
您可以通过管道过滤输出到FINDSTR,拒绝与您的扩展名结尾线。
/L
选项将搜索视为文字搜索(而不是正则表达式)。 /E
选项仅在行结束时匹配。 /I
选项使其不区分大小写。该/V
选项反转搜索,保持不匹配的线,过滤掉那些匹配
dir /ah-d /b /s "%temp%" | findstr /live .bat >>"temp.txt"
这会选取特定的扩展名 - 无,jp(例如| g)和tmp。
dir /ah-d /b /s "%temp%\*." "%temp%\*.jp*" "%temp%\*.tmp"
要排除管道输出
dir /ah-d /b /s "%temp%\*.*" | Findstr /i /v /c:".bat" >outputfile
可以通过命令行做到这一点(无批次文件需要):
FOR /F "usebackq tokens=* delims=" %A IN (`DIR /B /S "%temp%"`) DO (IF /I NOT "%~xA"==".bat" ECHO %A>>Out.txt)
这样做的关键部分是%~xA
部这将返回正在处理的文件的文件扩展名。然后将它与要排除的扩展名(在本例中为.bat
)进行比较,如果不匹配,则将文件名写入输出。
请注意,在您的示例中,您显示的是正在返回的目录,因此我的DIR
命令不会排除它们。此外,由于您正在使用/S
开关,因此将返回完整路径。如果你只是想获取文件名部分,只需更换:
ECHO %A
有了:
ECHO %~nxA
这不是完全可靠的线条 - 这将排除任何与'它.bat',例如: 'this.bat.txt','myfile.bat1' –
那么,它有多大可能性。 – Serenity
你不应该对你的数据做出假设。 –