一个脚本拯救你的 windows 环境变量
开发需要装很多程序,甚至一个程序有好几个版本 根据以往经验,都是把路径加入 PATH,渐渐的 PATH 变量越来越长,不方便管理
为了缓解这个问题, 我建了个目录 E:Tools 存放常用的独立命令(如 curl,wget),并将它加入 PATH 但是很多程序有大量的依赖 dll,总不可能都放一起吧
有时遇到一些命令需要类似 linux alias 设置默认参数在 cmd 里也得手动输入
思前想后,写了一个批处理简单实现了这个需求, 大概思路是 bat 被执行后取当前文件名(去后缀)作为命令名称,然后通过配置获取对应的程序并执行
脚本内容如下(配置解析用了 jq,需要自行下载):
@echo off setlocal ::echo %* set str1=%0 :: 截取当前命令名称 set "cmd1=%str1:.=" & set "xx=%" ::echo %cmd1% set jq_filter=".%cmd1% | join(" ")" ::echo %jq_filter% :: 用户 jq 获取启动命令和默认参数 :: 这里的配置文件路径需要更具实际情况设置为绝对路径 for /f "delims=" %%i in ('jq -r %jq_filter% n_config.json') do ( :: >= 1 -> ERROR if errorlevel 1 ( echo "no config" goto :EOF ) else ( set rt=%%i ) ) ::echo %rt% %rt% %*
配置文件 n_config.json:
{ "python37": { "cmd": "E:\Python\Python37\python.exe", "args": "" }, "test_git": { "cmd": "E:\git\bin\git.exe", "args": "--version" } }
现在就可以把脚本命名成需要的名字, 并在配置文件写入目标程序路径参数信息
列如: 把上面的脚本保存为 python37.bat, 执行就会启动 E:PythonPython37python.exe
大家觉得这个方案如何,或者有更好的方案,或者对脚本的改进,欢迎大伙儿一起焦流