我的问题是,如何使用批处理文件在文件夹中仅列出或打印特定扩展名的文件名。扩展名为.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" 我试着解决这个问题,但无法得到任何逻辑!请分享一些想法/方法来做到这一点。我会非常感激的。 我试着解释最好的我希望你明白我的观点。
答案 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)
ls *.apk
或 使用此脚本可以搜索所有驱动器并获取apk应用程序
Get-PSDrive | where { $_.Provider -match "FileSystem"} | select Root | ForEach-Object { Get-ChildItem $_.Root -n
ame *.apk -ErrorAction 'SilentlyContinue' }