2014-12-09 2 views
0

저희 회사에서는 배치 파일을 사용하여 Matlab을 시작합니다. 배치 파일은 Matlab을 시작하기 전에 환경을 준비합니다.실행 파일을 검색하는 "START"는 어디에 있습니까?

matlab에 자체

START MATLAB.EXE 

으로 시작 내가 matlab에 여러 버전의 내 시스템에 설치되어 있습니다. 그리고이 명령은 잘못된 Matlab 버전을 시작합니다. START가 실행 파일을 찾는 곳은 어디입니까? 이제 실행

@ECHO OFF 
REM Save this as C:\CheckPath.bat 

IF NOT "%~$PATH:1" == "" (
    ECHO %~$PATH:1 
) ELSE (
    ECHO Could not find "%~1" inside of a registered PATH. 
) 

: 시스템이 문제 EXE 해결 곳

+0

다음 내용을 참조하십시오. http://www.mathworks.com/matlabcentral/answers/80978-mutliple-copies-of-matlab-on-the-same-machine-how-to-set-the-default –

답변

8

명령은 추가 파일 확장자도없는 경우 세미콜론으로 구분 된 환경 변수 PATHEXT에 나열된 확장을 사용하여 명령 줄 인터프리터 같은 절대 경로를 사용하지 않는 경우가하는 cmd.exe를 실행하는 실행 파일을 찾습니다.

  1. 현재 작업 디렉토리. 환경 변수의

  2. 모든 디렉토리 PATH 순서는 PATH에 나열된. 명령 프롬프트 창을 set path에서

    그냥 유형은 PATH뿐만 아니라 PATHEXT에있는 모든 파일 확장자의 모든 디렉토리를 볼 수 있습니다.

    각 사용자 계정에는 PATH이 있습니다. 따라서 시스템 계정의 PATH은 (는) PATH 표준 사용자 계정과 다른 점을 알려줍니다. 이는 runas 명령으로 배치 파일을 실행하거나 다른 계정을 사용하는 작업 스케줄러를 통해 매우 중요합니다.

    Jason Faulkner으로 게시 한 배치 파일은 여기에서도 매우 유용합니다.

  3. 시작은 키 아래 레지스트리에 추가 보인다

    HKEY_CURRENT_USER \ 소프트웨어 \ 마이크로 소프트 \ 윈도우 \ CurrentVersion \ 응용 프로그램 경로
    HKEY_CURRENT_USER \ SOFTWARE \ Wow6432Node 마이크로 소프트 \ WINDOWS \ \ CurrentVersion을 응용 프로그램 경로 \
    HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ App 경로
    HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ App 경로

    응용 프로그램 insta msiexec을 사용하여 MSI 패키지 (설치 프로그램 EXE에 포함되어 있거나 별도로 게시 됨)에 파일 이름이 아래에 등록되어 있습니다. 전체 경로와 함께 실행 파일의 이름을 포함하는 기본 문자열 값을 사용하는 응용 프로그램 경로. 종종 경로의 응용 프로그램 실행 파일에 대한 전체 경로 만 포함하는 두 번째 문자열 값이 있습니다. 다른 설치 프로그램도 App Paths에 응용 프로그램을 등록합니다 (Microsoft 문서 Application Registration 참조).

설치가 신뢰할 수있는 설치 프로그램 또는 로컬 관리자 계정 따라서 설치된 응용 프로그램의 등록을 사용하여 수행됩니다로 registry hiveHKEY_CURRENT_USER응용 프로그램 경로 키는 일반적으로 존재하지 않는

는 레지스트리 하이브 HKEY_LOCAL_MACHINE에서 이루어집니다. 그러나 사용자 당 응용 프로그램을 설치하면 경로가 HKLM 경로 대신 응용 프로그램 등록에 사용됩니다.

아래의 키 Wow6432Node Windows x64에만 키가 있습니다. 그러나 x86 응용 프로그램은 일반적으로 응용 프로그램 경로에 등록됩니다. Wow6432Node은 32 비트 응용 프로그램 용이고 다른 트리는 Windows 7 x64, Windows Server 2008 R2 x64 이상 Windows x64 용 64 비트 응용 프로그램 용입니다. 자세한 내용은 Microsoft 문서 Registry Keys Affected by WOW64을 참조하십시오.

하나 더 참고 : 심지어 지정된 .exe

, 마지막 기간 후 (문자열 AppName.exe.*에 대한 추가 AppName.exe을 발견하고 검사 확장을 제출하지 후 PATH의 디렉토리뿐만 아니라 현재 작업 디렉토리에 검색을 시작 ) 파일 이름이 PATHEXT이면 파일 이름이 하나 이상 반환됩니다. 그럼에도 불구하고 AppName.exe을 현재 디렉토리에서 찾을 수없는 경우 와일드 카드 검색을 실행하기 전에 항상 AppName.exe에 대한 검색이 시작될 때 응용 프로그램의 파일 확장명을 지정하는 것이 좋습니다.

Sysinternals (Microsoft)의 무료 도구 Process Monitor은 그런 것들을 발견하는 훌륭한 도구입니다.

없음 실행에 대한 마지막으로 명령 개방에 대해 정의 된 관련 응용 프로그램과 파일이나 URI (URL)를 열 수있는 파일 연결을 위해 또한 검사 HKEY_CLASSES_ROOT을 시작 . 그것이 아래와 같은 것도 작동하는 이유입니다.start에 대한 코드를 포함

start MyTextFile.txt 
start https://stackoverflow.com/ 

%SystemRoot%\System32\cmd.exe 응용 프로그램을 실행 또는 관련 응용 프로그램과 파일이나 URL을 여는 Windows 셸 기능 ShellExecuteEx를 사용합니다.

+0

고맙습니다. 귀하의 대답 중 3 단계는 제 문제를 해결하는 데 도움이되었습니다. Matlab은 PATH에 포함되지 않았지만 모든 레지스트리 항목을 변경하여 새로운 Matlab 버전을 가리켰습니다. – wewa

0

당신은 검출이 배치 파일을 사용할 수 있습니다

  • C:\CheckPath.bat cmd.exe 수익을 C:\Windows\System32\cmd.exe
  • C:\CheckPath.bat NotValid.exe 반환 Could not find "NotValid.exe" inside of a registered PATH.

CheckPath.bat MATLAB.exe을 실행하면 시스템에서 경로를 확인할 위치를 알 수 있습니다.

주 - 스크립트에 %PATH%을 다시 정의하지 않는다고 가정하면 디렉토리가 해결됩니다.을 시작

관련 문제