2013-10-18 3 views
1

다른 사용자에게 독립형 작업을 배포했습니다. 그들은 공유 드라이브에 연결되어있을 때이 독립형의 업데이트를 사용할 수 있는지 확인하고 싶습니다. 필자는이 기능을 사용하여 독립 실행 형 디렉토리에 새 설치 패키지를 다운로드합니다. 그러나 독립 실행 형 응용 프로그램을 이미 덮어 쓸 수 없기 때문에 독립 실행 형 응용 프로그램을 설치할 수 없습니다. 이 업데이트를 자동으로 수행 할 수있는 방법이 있습니까? 코드에서 : 당신이 자신을 업데이트 할 어떤 프로그램을 사용하려고처럼 도움에 미리독립 실행 형을 실행하는 동안 Matlab 독립 실행 형을 업데이트하십시오.

copyfile(name,CurrentDirectory); % Download the new package [this works] 
system([CurrentDirectory,name,' -o']); % Can't overwrite the .exe file (this code will just run the package of the standalone) 

덕분에,

답변

0

보인다. 이 여기에, 오히려 문제가 소리 당신이 할 수있는 것입니다 :

  1. 실행 mainProgram 당신이
  2. 하자 두 번째 프로그램을 시작 mainProgram 필요로하는 패키지를 얻을 수 updater
  3. updatermainProgram을 죽이고 프로그램을 업데이트 할 수 있도록
  4. updatermainProgram으로 시작하여 종료하십시오.

프로그램에 몇 가지 권리가 필요하지만, 그 일이 끝나기를 바랍니다.


다음은 내 사용자의 모든 Excel 인스턴스를 삭제하는 데 사용하는 스크립트입니다. 대신 mainProgram을 처리하도록 변경 될 수 있습니다.

[~, computer] = system('hostname'); 
    [~, user] = system('whoami'); 
    [~, alltask] = system(['tasklist /S ', computer, ' /U ', user]); 
    excelPID = regexp(alltask, 'EXCEL.EXE\s*(\d+)\s', 'tokens'); 
    for i = 1 : length(excelPID) 
     killPID = cell2mat(excelPID{i}); 
     system(['taskkill /f /pid ', killPID]); 
    end 

이 내가 창문 아래에 무엇을 사용는 확실하지이 다른 OS에서 작동하는 경우지만 다른 운영 체제의 프로세스를 종료하는 방법을 찾기 어려운해서는 안됩니다.

+0

답장을 보내 주셔서 감사합니다. 나는이 파일이 하나 이상의 파일을 만들도록 강제하는 유일한 해결책이라고 "두려워"했습니다. 포인트 3에 대한 질문이 있습니다. 다른 스크립트에서 프로그램/스크립트를 강제 종료하려면 어떻게해야합니까? – user2894107

+0

@ user2894107 프로세스를 죽이는 방법에 대한 코드를 추가했습니다. 창을 사용하지 않는다면 작동하지 않을 수도 있지만 대안을 찾기가 아주 쉽습니다. –

관련 문제