2012-08-13 50 views
1

我有一个程序启动一个cmd控制台与一定的环境。通过点击按钮启动控制台的问题,所以我无法在该环境下自行创建自定义启动程序。windows cmd enviroment

我想要的: 给定一个带有设置变量的文件(通过在自定义启动的cmd中运行set命令生成),我想通过读取该文件在当前cmd控制台中设置环境。

例子:

in.txt(注意同瓦尔的空间在右侧):

var1=c:\program files 
path=c:\;c:\bin 
var2=d:\folder with libs 

运行脚本等之后:在目前的CMD控制台应该是./script.sh in.txt环境(运行set命令后输出):

var1=c:\program files 
path=c:\;c:\bin 
var2=d:\folder with libs 

注:庆典脚本可以在脚本中,只要环境设置正确使用。

回答

0

我已经manged中写入以下工作脚本:

  • 用法:script.bat file_name
  • 如果file_name未提供打印用法
  • 创建删除他们可能之前备份文件envbkp.bat与环境变量恢复

    @echo off 
    
    set _exitStatus=0 
    set _argcActual=0 
    set _argcExpected=1 
    
    echo. 
    
    for %%i in (%*) do set /A _argcActual+=1 
    
    if %_argcActual% NEQ %_argcExpected% (
        call :_ShowUsage %0% 
        set _exitStatus=1 
        goto:_EOF 
    ) 
    
    set _exitStatus= 
    set _argcActual= 
    set _argcExpected= 
    
    if exist ".\envbkp.bat" del ".\envbkp.bat" 
    echo @echo off > envbkp.bat 
    for /f "tokens=1* delims==" %%a in ('set') do (
        echo set %%a=%%b>> .\envbkp.bat 
        set %%a= 
    ) 
    
    for /f "tokens=1* delims==" %%a in ('type %~1') do (
        set %%a=%%b 
    ) 
    goto:_EOF 
    
    :_ShowUsage 
        echo [USAGE]: %~1 env_file 
        echo. 
    if NOT "%~2" == "" (
        echo %~2 
        echo. 
    ) 
    goto:eof 
    
    :_EOF 
    
0

只需重命名in.txt到in.bat则这些内容应该是:

set var1=c:\program files 
set path=c:\;c:\bin 
set var2=d:\folder with libs 

和运行in.bat