如何打开具有相同扩展名的多个文件

时间:2017-03-06 04:30:10

标签: batch-file

我想在Downloads文件夹中打开以.jar结尾的每个文件。我的代码不起作用。我做错了什么以及如何实现我的最终目标?

代码:

del /s /q "C:\Users\%USERNAME%\AppData\Roaming\.minecraft\session.*"
cls
:choice
cls
set /P c=Open the file? [Y/N]
if /I "%c%" EQU "Y" goto :start
if /I "%c%" EQU "N" goto :choice
goto :choice

:start
start "" "C:\Users\Home Computer\Downloads\????.jar"
del /s /q "C:\Windows\Prefetch\JAVA*.pf"
del /s /q "C:\Users\Home Computer\Recent\*.bat.lnk"
del /s /q "C:\Users\Home Computer\Recent\????.jar.*"
del /s /q "C:\Users\Home Computer\Recent\Downloads.lnk"
pause

编辑:我还应该提到每次下载时.jar的名称都会更改。我无法通过文件名专门定位它。文件名总是四个字符。

看看这两个截图。 https://gyazo.com/579ebd940bcd74f3a3deeb05db7b337d

https://gyazo.com/ceaffd97bf1f1e81860036810b35fcd7

3 个答案:

答案 0 :(得分:0)

如果文件的名称每次都有相同的字符数,那么你可以使用?对于每个字符而不是*。 假设文件名长度为3个字符,那么您可以将命令编写为:

start "" "C:\Users\Home Computer\Downloads\???.jar"

也许您可以从以下链接中获取一些参考资料:

https://www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways-to-rename-multiple-files/

答案 1 :(得分:0)

start "" "C:\Users\Home Computer\Downloads\*.jar"

java -jar "C:\Users\Home Computer\Downloads\*.jar"

答案 2 :(得分:0)

您可以使用Where命令识别下载文件的名称。 (当然,如果你没有超过四个字符.jar文件,它只能识别它

@Echo Off
Del/S/Q "%AppData%\.minecraft\session.*" 2>Nul

:Pick
ClS
Choice /M "Open the file"
If ErrorLevel 3 GoTo :EOF
If ErrorLevel 2 GoTo Pick
If ErrorLevel 1 GoTo Start
GoTo :EOF

:Start
For /F "Delims=" %%A In ('Where "%UserProfile%\Downloads":"????.jar"'
) Do (Set "FullName=%%~fA" & Set "Name=%%~nxA")
Start "" "%FullName%"
Del/Q "%SystemRoot%\Prefetch\JAVA*.pf" 2>Nul
Del/Q "%UserProfile%\Recent\%~nx0.lnk" 2>Nul
Del/Q "%UserProfile%\Recent\%Name%.lnk" 2>Nul
Del "%UserProfile%\Recent\Downloads.lnk" 2>Nul
Timeout -1

您甚至可以通过删除同一删除行中的多个快捷方式来缩短它。
您用于recent的位置是实际上只链接到现代Windows版本中的真实位置,因此您可以将%UserProfile%\Recent替换为%AppData%\Microsoft\Windows\Recent