2016-08-02 27 views
0

Я пытаюсь запустить простой скрипт Powershell через Matlab. Его целью является обмен файлами между моим ноутбуком и HPC. Из командной строки все работает хорошо, я вижу файлы, которые копируются, и весь процесс завершается за считанные секунды.Запуск Powershell из Matlab. Matlab не останавливается

powershell.exe -ExecutionPolicy Unrestricted -File C:\Users\...\TEST.ps1 

Но когда я пытаюсь запустить в с Matlab, хотя я все еще могу видеть файлы копируются успешно, Matlab оленьей кожи «стоп», то есть он держит занят вечно, и мне нужно, чтобы закрыть его с помощью Ctrl-C.

system('powershell.exe -ExecutionPolicy Unrestricted -File C:\Users\...\TEST.ps1') 

Как предполагается быть частью большого кода Matlab, я хотел бы, чтобы работать бесперебойно. Может ли кто-нибудь мне помочь?

A.

+1

ли держать занят, что в то время как файлы копируются, или же после завершения копирования? –

+1

После копирования файлов, пока я не убью его с помощью Ctrl-C. И в этом проблема. Я понимаю, что он продолжает работать, пока процесс запущен, но Matlab продолжает работать навсегда. – Agnieszka

+0

Я все еще придерживаюсь этой проблемы, но я обнаружил, что после того, как скрипт Powershell успешно запущен (все файлы скопированы), я могу перейти к Matlab, просто нажав Enter. Он все еще не решает мою проблему, потому что я хочу, чтобы она была частью более крупного кода. – Agnieszka

ответ

0

Я нашел решение. Он работает именно так, как я хотел. Возможно, это не самый простой, но я буду использовать его, пока не найду что-то лучше:

f1name = tempname; 
    while exist(f1name,'file') 
    f1name = tempname; 
    end 
    fid = fopen(f1name, 'wt'); 
    [a,b]=system(['powershell.exe -ExecutionPolicy Unrestricted -File C:\Users\...\TEST.ps1 < ' f1name]); 
Смежные вопросы