2012-08-13 52 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