环境变量的刷新问题

问题描述

这几天想写一个自动配置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!

猜你喜欢

转载自blog.csdn.net/whitewkr/article/details/82957781