如何使用批处理文件列出具有编号顺序的文件夹内的特定扩展名的所有文件

时间:2015-03-22 15:07:20

标签: android windows batch-file cmd

我的问题是,如何使用批处理文件在文件夹中仅列出或打印特定扩展名的文件名。扩展名为.apk和.jar

让我用一个例子来解释一下,假设文件夹名称文件中有四个文件,即" framework-res.apk" " systemui.apk" " game.apk"和" 7z.exe" 现在我在那里放置一个bat文件,执行它并希望它在屏幕上返回此输出

1) "framework-res.apk"

2) "systemui.apk"

3) "game.apk"

蝙蝠应该能够打印无论有多少文件与.apk扩展名和串行方式如上所述(编号顺序),如果它有3个以上的apk文件,它应该自动继续像

4) bla.apk 

5) wea.apk

依旧......

并且它不应该打印任何其他文件扩展名而不是.apk或.jar,例如" 7z.exe" 我试着解决这个问题,但无法得到任何逻辑!请分享一些想法/方法来做到这一点。我会非常感激的。 我试着解释最好的我希望你明白我的观点。

2 个答案:

答案 0 :(得分:0)

最短的方式,如果你可以采用略有不同的布局:

dir /b *.apk|findstr /n "^"

保持给定的布局,它有点复杂:

setlocal enabledelayedexpansion
set /a x=0
for %%i in (*.apk) do (
  set /a x +=1
  echo !x!^) "%%i"
)

输入-thingy:

@echo off
setlocal enabledelayedexpansion
set /a x=0
(for %%i in (*.apk) do (
  set /a x +=1
  echo !x!^) "%%i"
))>dir.txt

:loop
type dir.txt
set /p "c=enter number: "
if "%c%"=="" goto :loop
if %c% gtr %x% goto :loop
for /f "tokens=1,* delims= " %%i in ('findstr /b "%c%)" dir.txt') do set choosen=%%j
echo your file is: %choosen%

答案 1 :(得分:0)

很简单 powershell命令

ls *.apk

或 使用此脚本可以搜索所有驱动器并获取apk应用程序

Get-PSDrive | where { $_.Provider -match "FileSystem"} | select Root | ForEach-Object { Get-ChildItem $_.Root -n
ame *.apk -ErrorAction 'SilentlyContinue' }