Подтвердить что ты не робот

Есть ли эквивалентная команда источника в Windows CMD, как в bash или tcsh?

Я знаю, что в мире unix, если вы редактируете файл .profile или .cshrc, вы можете сделать исходный файл ~/.profile или источник ~/.cshrc, чтобы получить эффект от текущего сеанса. Если я что-то изменил в системной переменной в Windows, как я могу заставить ее влиять на текущий сеанс командной строки, не выходя из сеанса командной строки и открывая еще один сеанс командной строки?

4b9b3361

Ответ 1

Я боюсь, что нет, но вы можете начать использовать Powershell, который поддерживает поиск точек. Поскольку окно powershell действительно основано на cmd, поэтому вся ваша команда dos будет продолжать работать, и вы получите новую мощность, гораздо большую мощность.

Ответ 2

В обычной командной строке Windows (например, cmd.exe), просто с помощью call mybat.bat сделал то, что я хотел. Я получил все переменные окружения, которые он установил.

Ответ 3

В оболочке dos будут поддерживаться файлы .bat, содержащие только присваивания переменным, которые при выполнении будут создавать переменные в текущей среде.

  c:> type EnvSetTest.bat
  set TESTXYZ=XYZ

  c:> .\EnvSetTest.bat

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

IHTH.

Ответ 4

Следующий пример поможет вам решить вашу проблему.

env.bat Этот файл предназначен для установки переменных. Его содержимому дан удар.

set name="test3"

test.bat Наш основной пакетный файл.

call env.bat
call print.bat
pause

Теперь print.bat пакетный файл print.bat для печати переменных. Его содержание приведено ниже

echo %name%

Ответ 5

Единственный способ, которым я нашел это, - запустить новое окно 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 запустит новое приглашение cmd с нужными настройками, экспортированными в окно команд.

Ответ 6

Вот обходной путь для некоторых ограниченных вариантов использования. Вы можете прочитать файл команд и выполнить их в строке. Например, вызывающий командный файл выглядит так:

echo   OFF
SETLOCAL  ENABLEDELAYEDEXPANSION
     :
echo.         ----------------
echo.           set-up java
echo.         ----------------
echo.
rem       call    %DEV_SCRIPTS%\setup-java
for /F "tokens=*" %%A in ( %DEV_SCRIPTS%\setup-java.bat ) do (
    %%A
)        
call    %DEV_SCRIPTS%\show-java
     :

В файле setup-java.bat вы не можете использовать % раскрытия. Вам нужно использовать ! ; например:

    set  JRE_HOME=!JRE_08!
    rem        
    set  JRE_TARGET=!JRE_HOME!

Таким образом, вы litterally source -ing команды из текстового файла. Вам нужно будет проверить, какие команды получены таким образом. Потребовалось несколько испытаний, чтобы установить некоторые переменные среды.

Я не думаю, что мы можем сделать логику или циклы, потому что командный процессор сканирует файл в начале. Я в порядке, просто имея простой обходной путь для повторного использования общих вещей, таких как определения среды. Большинству других вещей не понадобится настоящая команда source (я надеюсь). Удачи.

Ответ 7

Например, чтобы установить VС# vars

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

Ответ 8

Используйте Git Bash для Windows, он работает совершенно нормально!