开发需要装很多程序,甚至一个程序有好几个版本 根据以往经验,都是把路径加入 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:\Python\Python37\python.exe
大家觉得这个方案如何,或者有更好的方案,或者对脚本的改进,欢迎大伙儿一起焦流
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.