2012-05-01 30 views
14

我知道在unix世界中,如果編輯.profile或.cshrc文件,可以使用source〜/ .profile或source〜/ .cshrc來獲取當前會話的效果。如果我在Windows系統變量中更改了某些內容,如何在不退出命令提示符會話並打開另一個命令提示符會話的情況下對當前命令提示符會話產生影響?在Windows CMD中是否存在與bash或tcsh中的等效源命令?

回答

4

恐怕不是,但是您可以開始使用支持點源的Powershell。由於PowerShell窗口實際上基於cmd,因此所有的dos命令都可以繼續工作,並且獲得新的能量,更多的能量。

+0

感謝約翰·沉。我在網上搜索並沒有找到任何等價物。我見過Powershell,也許我會開始使用它而不是舊的命令提示符。 – mart2001

+5

無法獲取PowerShell來做到這一點 –

8

dos shell將支持.bat文件,該文件只包含賦值給變量,該變量在執行時將在當前環境中創建變量。

c:> type EnvSetTest.bat 
    set TESTXYZ=XYZ 

    c:> .\EnvSetTest.bat 

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

IHTH。

+0

昨天無意中撞上了-1,sry。我會看看如果一個國防部可以修復它 – thomasa88

+0

似乎我不能upvote,直到該文章被編輯。介意做一個小修改? – thomasa88

+0

tnx,如果我學到一些東西,我不介意降低投票率,但是早些時候沒有任何有意義的評論。再次感謝您解決這個問題。祝你們好運。 – shellter

23

在通常的Windows命令提示符(即CMD)中,只使用call mybat.bat做了我想要的。我得到了它所設置的所有環境變量。

+2

不起作用,如果mybat.bat正在調用其他bat文件。 –

+0

如果mybat.bat運行其他批處理腳本,則需要「調用」它們以允許執行返回到當前腳本。 – eryksun

1

我發現這個工作的唯一方法是從我自己的配置窗口啓動一個新的cmd窗口。例如:

@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將推出一個新的命令提示符與出口到命令窗口所需的設置。

-1

例如設置VC#瓦爾

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