wkdxz 发表于 2023-11-16 11:28

[批处理] 查看完美解码播放记录

本帖最后由 wkdxz 于 2023-11-17 15:24 编辑

### 前言
* 代码是2018年写的,当时完美解码是我的主力播放器,因为播放的文件太多,经常忘记文件放在哪里了,所以写了这个脚本。
* 摸鱼的电脑没有完美解码,所以截图里没有文件信息,只展示了功能。
* 如果有正在用完美解码的兄弟,可以试试脚本,电脑直接运行,无需任何环境设置,挺方便的。
* **新版的完美解码有可能注册表位置发生了变化,通过修改`HKCU\Software\Daum\PotPlayerMini\RememberFiles`可修正**

### 代码功能
1 提供过读取注册表,展示完美解码播放过的文件
2 可以提供输入序号回车来打开文件
3 如果文件存在,则可以使用“序号+”的方式定位文件
4 如果播放的文件已删除,可以输入0查看已删除文件的路径

### 界面


### 代码
```
@echo off
setlocal enabledelayedexpansion

set zz= - By wkdxz
title %~n0!zz!
set ws="!tmp!\未删"
set ys="!tmp!\已删"

::删除残留文件
call :de
cd.>!ws!
cd.>!ys!

for /f "tokens=2 delims=^=" %%a in ('reg query HKCU\Software\Daum\PotPlayerMini\RememberFiles') do (
    if exist "%%~a" (
      set /a a1+=1
      echo 【!a1!】%%~a>>!ws!
    ) else (
      set /a a2+=1
      echo 【!a2!】%%~a>>!ys!
    )
)

goto weishan
exit

:weishan
title 完美解码播放过的文件(不含已删文件) !zz!
type "!ws!"
echo.
echo.
echo ---------选 项---------
echo.
echo ^> 输入序号打开对应文件;
echo.
echo ^> 输入“0”查看已删文件列表;
echo.
echo ^> 直接回车,则打开最后一个文件;
echo.

set b=
set /p b=^> 输入"序号+",则定位文件位置(如:“!a1!+”):
::设定b默认值
if not defined b set b=!a1!
if "!b!"=="+" set b=!a1!+
if "!b:~-1!"=="+" (
    set b=!b:~,-1!
    for /f "tokens=1,2 delims=【】" %%a in ('type "!ws!"') do (
      if "%%a"=="!b!" (
            start "" explorer /select,"%%~b"
            call :de
      )
    )
) else (
    for /f "tokens=1,2 delims=【】" %%a in ('type "!ws!"') do (
      if "%%a"=="!b!" (
            start "" "%%~b"
            call :de
      )
    )
    if 0==!b! goto yishan
)
goto :eof

:yishan
cls
title 完美解码播放过的文件(已删文件) !zz!
type "!ys!"
echo.
echo.
echo ---------选 项---------
echo.
echo ^> 输入序号打开对应文件路径(如果存在);
echo.

set b=
set /p b=^> 直接回车,则打开最后一个文件的路径(如:“!a2!”):
::设定b默认值
if not defined b set b=!a2!
for /f "tokens=1,2 delims=【】" %%a in ('type "!ys!"') do (
    if "%%a"=="!b!" (
      if exist "%%~dpb" (
            start "" "%%~dpb"
            call :de
      ) else (
            cls
            echo.
            echo "%%~dpb"
            echo.
            echo.
            echo !b!项路径已被删除,请按任意键返回...
            pause >nul
            goto yishan
      )
    )
)
goto :eof

:de
del /a/f/q "!ws!" "!ys!" >nul 2>nul
goto :eof
```


### 如果打不开代码,或运行出错,可以下载附件

gooddaycmd 发表于 2023-11-16 12:11

个人觉得目前最好用的播放器了(最早用金山影霸,后来风暴影音,kmplayer,media player classic,QQ影音,都过去式了)。
借楼主地方顺带分享下,potplayer的官方下载地址(下下来的都是最新版)。
https://t1.daumcdn.net/potplayer/PotPlayer/Version/Latest/PotPlayerSetup.exe

竹轩 发表于 2023-11-16 11:46

在用着完美播放器,支持下,期待添加多些功能。多谢LZ分享

bwzydfxz 发表于 2023-11-16 12:06

学习了!

twq888 发表于 2023-11-16 12:08

试试行不行;要是能看别人的电脑就好了。

水清无余 发表于 2023-11-16 12:17

学习了,感谢

水清无余 发表于 2023-11-16 12:19

感觉很有用很不错

Batcher 发表于 2023-11-16 12:21

感谢分享。
如果播放过的文件名包含英文感叹号,或者其所在的文件夹名包含英文感叹号,代码是否无法正确处理?

lechao 发表于 2023-11-16 12:28

哇哦!这个看着不错,去试试!

qiufeng821030 发表于 2023-11-16 12:39

非常不错,感谢楼主!
页: [1] 2 3
查看完整版本: [批处理] 查看完美解码播放记录