问题描述
这几天想写一个自动配置Git的脚本,实现在学校机房安装完成后自动创建远程库。
这是bat代码:
start "" "Git_install.exe"
pause
cd C:\Users\%username%\Desktop
git config --global user.name "xxx"
git config --global user.email "xxx" ::保密hhh
md xxx
cd xxx
git init
git remote add origin [email protected]:xxx/xxx.git
git pull origin master
start "explorer.exe" "%cd%"
exit
可是呢
报错了
“'git’不是内部或外部命令,也不是可运行的程序或批处理文件”
???
命令行里输入set,没错啊,git的目录已经在path变量里了呀
解决方案
很容易想到原因是批处理执行时没有刷新环境变量
好,那我改
set path="%path%;%programfiles%\Git\cmd" ::临时修改path变量
……
start "" "gitset.cmd"
我把git命令的执行放到另一个脚本里(这下行了吧?)
“'git’不是内部或外部命令,也不是可运行的程序或批处理文件”
垃圾批处理!我……
忍。
把第二个个脚本转成exe试试?
打开Bat To Exe Converter,编译。
白花花的文字一闪而过,
,
诶?好了?
原理
其实我忘了有预处理机制这种东西……
命令行中对环境变量的修改只有退出之后才会生效,
所以开多少个脚本都是不行的,而exe与批处理不同,运行时就算是退出了命令行,
这时候被修改的变量已经刷新了,所以呢
Suceeed!