从Matlab运行PowerShell。 Matlab不会停止

问题描述:

我想通过Matlab运行一个简单的Powershell脚本。其目的是在我的笔记本电脑和HPC之间交换文件。从命令行一切正常,我可以看到文件被复制,整个过程在几秒钟内完成。从Matlab运行PowerShell。 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脚本成功运行后(所有文件都被复制),我只需按Enter即可使用Matlab进行操作。它仍然不能解决我的问题,因为我希望它成为更大代码的一部分。 – Agnieszka

我找到了解决办法。它的工作原理就是我想要的。可能它不是最简单的,但我会用它,直到我找到更好的东西:

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]);