1

特定の環境でcmdコンソールを起動するプログラムがあります。ボタンをクリックするとコンソールが起動するという問題があるため、その環境でカスタムランチャーを自分で作成することはできません。

必要なもの:変数が設定されたファイル(カスタムで起動されたcmdでsetコマンドを実行して生成されたもの)があれば、そのファイルを読み取って現在のcmdコンソールで環境を設定したいと思います。

例:

in.txt(右側の同じ変数のスペースに注意してください):

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

次のようなスクリプトを実行した後./script.sh in.txt、現在のcmdコンソールの環境は次のようになります(setコマンドの実行後に出力されます)。

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

注:環境が適切に設定されている限り、bashスクリプトをスクリプト内で使用できます。

4

2 に答える 2

0

in.txtの名前をin.batに変更するだけで、内容は次のようになります。

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

そしてin.batを実行します

于 2012-08-13T20:23:16.980 に答える
0

私は次の作業スクリプトを書くように管理しました:

  • 使用法: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
    
于 2012-08-13T20:40:00.307 に答える