使用uTools打造方便工具流

utools已经够强大了,不过对于我来说,它还是有很多”硬货“没法直接干。比如媒体的相关处理等。而要处理这些东西,免不了就会涉及到很多诸如ffmpeg等强大的工具。但是使用这些工具就会和utools的使用的体验有割裂感。并且这些工具会面临一个跨设备使用的问题,每次跨设备可能需要重新配置。

所以今天我就来谈谈我的一种解决方案。它无缝的将utools和这些强大工具融合起来,并且具有良好的跨设备特性。切换一个设备环境,也只需几分钟配置,就可以获得一个几乎一致的使用体验。

原理:

其实很简单。整个框架包含三个部分:数据目录,工具目录,utools。

  1. 数据目录:数据目录负责存放一些配置文件,使用git来管理。便于快速的在不同设备之间同步。比如我写的一个用来一键抓取网页内容的快捷命令,便可以将各个网页的抓取规则以配置文件放在数据目录里。目录包含一个配置脚本,便于将该目录写入环境变量。
  2. 工具目录:工具目录用于存放各种工具,可以是现成的强大工具(如:ffmpeg),也可以是自己写的。但是要求这些工具最好支持命令行操作。该目录同样也包含了自动配置环境变量的工具。
  3. utools:utools里需要先安装”快捷命令”插件,它提供了强大的脚本和UI支持。通过utools,我可以通过环境变量调用工具目录的工具和数据目录里的配置文件,从而方便快捷的实现各种方便强大的功能。
  • 工具目录:
    使用uTools打造方便工具流_第1张图片

如上图,这里面是我默认放的一些工具(当然后来又添加了一些自己写的命令行工具)。

这里面还放了个”SetEnv2.ps1“文件。这个文件比较关键:它主要将该工具目录路径写入环境变量和一些其它的初始化工作。代码示例如下:

#设置脚本当前目录为环境变量
$script_dir = Split-Path -Parent $MyInvocation.MyCommand.Definition
[System.Environment]::SetEnvironmentVariable("UtoolsCoreAssets",$script_dir,"Machine")
Write-Host "Environment variable to complete!"
#idm绿化
.\IDM\green.bat
Write-Host "idm Afforestation finish"
#提示
Write-Host "Enviroment Write Success,need restart computer!"
Pause

工具目录我会以压缩包的形式放在云端(如百度云盘)。因为这个包修改频率较小。当换到新环境后,可以下载这个包,解压后运行”SetEnv2.ps1“,设置就算完成了。

  • 数据目录:
    使用uTools打造方便工具流_第2张图片

使用uTools打造方便工具流_第3张图片
使用uTools打造方便工具流_第4张图片

数据目录主要存放配置文件和自己写的一些库文件。如上图的python库文件以及一些配置文件。这些文件是经常需要更新的,所以采用git维护,便于跨设备快速同步。目录同样包含了一个”SetEnv2.ps1“脚本来写入环境变量:

#设置脚本当前目录为环境变量
$parent_dir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$python_scripts_dir = $parent_dir + "/Scripts"
[System.Environment]::SetEnvironmentVariable("UtoolsCoreData",$parent_dir,"Machine")
#设置自己的python库目录,这样就可以在python脚本里直接引用自己的库了
[System.Environment]::SetEnvironmentVariable("PYTHONPATH",$python_scripts_dir,"Machine")
  • utools:

接下来就是使用utools来写脚本了。逻辑很简单:在“快捷命令”里通过脚本调用工具目录里的工具程序和数据目录里的配置来实现相关逻辑。就挑个最简单来说。比如我想实现:一个视频全屏随机轮播的功能,码代码码累了,可以随机轮播自己收集的高清视频。调节下心情。就可以通过命令行来调用mpc-hc.exe来实现。代码如下:

import os
import json
import subprocess

#UtoolsCoreAssets为工具目录,UtoolsCoreData为数据目录
mpc_path = '%s/%s' % (os.environ['UtoolsCoreAssets'],'MPC-HC/mpc-hc64.exe')
data_path = '%s/%s' % (os.environ['UtoolsCoreData'],'Data/Path.json')
with open(data_path,'r') as dat:
    lunbo_path = json.loads(dat.read())['lunbo']
    #命令行:mpc-hc64.exe video目录 /randomize /fullscreen
    subprocess.call([mpc_path,lunbo_path,'/randomize','/fullscreen'])

Path.json里面存放了本机相关的独立目录:

使用uTools打造方便工具流_第5张图片

通过将上方的代码设置为快捷命令就能一键启动啦。并且跨设备也能快速同步操作,基本无需配置。

下面是我的一部分实用的快捷命令,具体可以前往后面相关链接查看。

使用uTools打造方便工具流_第6张图片
使用uTools打造方便工具流_第7张图片
使用uTools打造方便工具流_第8张图片

我的脚本汇总:

https://blog.csdn.net/qq_33520289/category_10782743.html

附上基本框架:

链接:https://pan.baidu.com/s/1YZx4DqTmnqscXDTiQTmkZQ
提取码:wrml

你可能感兴趣的:(我的原创Utools工具集,python)