列出目录中除扩展名之外的所有文件
List all files in a directory except for an extension
我想知道如何显示目录中除扩展名之外的所有文件。
示例:.bat
我的代码:
Dir /ah-d /b /s "%temp%" >>"Temp.TxT"
结果:
Folder123
image.jpg
TESTE.bat
abc.TMP
我要的结果:
Folder123
image.jpg
abc.TMP
注意:其他文件的扩展名可能不同。
这会选择特定的扩展名 - none、jp(eg|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
部分,它将 return 正在处理的文件的文件扩展名。然后将其与您要排除的扩展名(在本例中为 .bat
)进行比较,如果不匹配,则将文件名写入输出。
请注意,在您的示例中,您显示的是正在 returned 的目录,因此我的 DIR
命令不会排除它们。此外,由于您使用的是 /S
开关,因此完整路径将被 returned。如果只想获取文件名部分,只需替换:
ECHO %A
有:
ECHO %~nxA
您可以通过管道传输到 FINDSTR 来过滤输出,拒绝以您的扩展名结尾的行。
/L
选项将搜索视为文字搜索(与正则表达式相反)。 /E
选项仅在行尾匹配。 /I
选项使其不区分大小写。 /V
选项反转搜索,保留不匹配的行,过滤掉匹配的行
dir /ah-d /b /s "%temp%" | findstr /live .bat >>"temp.txt"
我想知道如何显示目录中除扩展名之外的所有文件。
示例:.bat
我的代码:
Dir /ah-d /b /s "%temp%" >>"Temp.TxT"
结果:
Folder123
image.jpg
TESTE.bat
abc.TMP
我要的结果:
Folder123
image.jpg
abc.TMP
注意:其他文件的扩展名可能不同。
这会选择特定的扩展名 - none、jp(eg|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
部分,它将 return 正在处理的文件的文件扩展名。然后将其与您要排除的扩展名(在本例中为 .bat
)进行比较,如果不匹配,则将文件名写入输出。
请注意,在您的示例中,您显示的是正在 returned 的目录,因此我的 DIR
命令不会排除它们。此外,由于您使用的是 /S
开关,因此完整路径将被 returned。如果只想获取文件名部分,只需替换:
ECHO %A
有:
ECHO %~nxA
您可以通过管道传输到 FINDSTR 来过滤输出,拒绝以您的扩展名结尾的行。
/L
选项将搜索视为文字搜索(与正则表达式相反)。 /E
选项仅在行尾匹配。 /I
选项使其不区分大小写。 /V
选项反转搜索,保留不匹配的行,过滤掉匹配的行
dir /ah-d /b /s "%temp%" | findstr /live .bat >>"temp.txt"