2012-05-01 7 views
14

私はUNIXの世界では、.profileまたは.cshrcファイルを編集すると、ソース〜/ .profileまたはsource〜/ .cshrcを実行して、現在のセッションに影響を与えることができることを知っています。 Windowsのシステム変数で何かを変更した場合、コマンドプロンプトセッションを終了せずに別のコマンドプロンプトセッションを開くことなく、現在のコマンドプロンプトセッションにどのように影響を与えることができますか?Windows CMDにbashまたはtcshと同じソースコマンドがありますか?

答えて

4

私は怖いですが、ドットソーシングをサポートしているPowershellを使うことができます。 PowerShellのウィンドウはcmdに基づいているので、すべてのdosコマンドは引き続き動作し、新しいパワー、より多くのパワーを得ることができます。

+0

おかげでジョン・シェンをvarsの。私はウェブを検索して、同等のものを見つけていません。私はPowershellを見てきました。おそらく古いコマンドプロンプトではなく、それを使い始めるでしょう。 – mart2001

+5

これを行うためにpowershellを取得できませんでした –

8

dosシェルは、実行時に現在の環境で変数を作成する変数への割り当てだけを含む.batファイルをサポートします。

c:> type EnvSetTest.bat 
    set TESTXYZ=XYZ 

    c:> .\EnvSetTest.bat 

    c:> set | find "TESTX" 
    TESTXYZ=XYZ 
    c:> 

IHTH。

+0

昨日誤って-1を押しました。モードが修正できるかどうか確認します – thomasa88

+0

投稿が編集されるまでupvoteできません。マイナーな編集をする心? – thomasa88

+0

tnx、私は何かを学ばなければdownvotedを得ても構わないが、以前は有益なコメントはなかった。これを修正していただきありがとうございます。皆さんお元気で。 – shellter

23

通常のWindowsコマンドプロンプト(CMD)では、ちょうどcall mybat.batを使用していました。私はそれが設定したすべての環境変数を得ました。

+2

mybat.batが他のbatファイルを呼び出す場合は機能しません。 –

+0

mybat.batが他のバッチスクリプトを実行する場合、実行を現在のスクリプトに戻すために、それらを呼び出す必要があります。 – eryksun

1

これが動作することがわかった唯一の方法は、自分の設定ウィンドウから新しいcmdウィンドウを起動することです。例:

a
@echo off 
echo Loading... 
setlocal enabledelayedexpansion 
call 1.cmd 
call 2.bat 
... 
... 
if "%LocalAppData%"=="" set LocalAppData=%UserProfile%\Local Settings\Application Data 
SET BLAHNAME=FILE:%LocalAppData%\BLAH 
call blah blah 
cmd 

最後のcmdは、コマンドウィンドウにエクスポートされた設定を含む新しいcmdプロンプトを起動します。 VC番号を設定するために、例えば

-1

C:\Windows\System32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" 
関連する問題