具体比如, 我在使用开源命令行工具bbdown下载b站视频, 一个合法命令比如, bbdown --config-file C:\Users\test\mv.config --help
.
为了方便快捷传入不同的配置文件, 我参照chatgpt回答写了一个bbdown.bat, 主要就是先做一个cd然后再调用bbdown.exe, 这样一来就可改用命令bbdown.bat --config-file mv.config --help
, 即简化了对配置文件路径的传入.
@echo off
cd "%~dp0"
bbdown %*
但这样键入时, 需要在进入bbdown之后多按一下tab, 才能使之补全为bbdown.bat, 多少还是有点麻烦. 所以请问有没有什么方法能让我在直接调用bbdown.exe时候, 自动先执行bbdown.bat? chatgpt回答用autocmd, 但这就超出我浅显的能力范围了.
ps. 我能想到的另一种间接实现方式是把环境变量pathext里面的.bat和.exe调换顺序, 但不清楚这样做有没有什么坏处. 或者是把bbdown.bat改名为mybbdown.bat之类的, 然后即可只键入mybbdown...
, 但还是想知道有没有更优雅的解决方案. 感谢.
再次查询chatgpt, 又看到一个看起来靠谱但试验后无效的方案。把.bat改成.cmd就可以先于bbdown.exe自动执行: 当在终端里输入bbdown.exe时,Windows会先在bbdown.exe所在的目录下寻找是否有同名的.cmd文件。如果有,那么Windows会优先执行这个.cmd文件,然后再执行bbdown.exe。这样就相当于在调用bbdown.exe之前自动执行了你的批处理文件。
把
bbdown.exe
从环境变量PATH
中移除。然后把
.bat
里面的 bbdown 改为完整的路径,比如C:/app/bbdown.exe
,然后把.bat
文件的目录放到环境变量里面。这样最为简单。