从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.
答
我找到了解决办法。它的工作原理就是我想要的。可能它不是最简单的,但我会用它,直到我找到更好的东西:
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]);
当文件被复制或复制完成后它是否保持繁忙? –
文件被复制后,直到我用Ctrl-C杀死它。这就是问题所在。我明白,在进程运行时它会保持忙碌,但Matlab一直都很忙。 – Agnieszka
我仍然坚持这个问题,但我发现,Powershell脚本成功运行后(所有文件都被复制),我只需按Enter即可使用Matlab进行操作。它仍然不能解决我的问题,因为我希望它成为更大代码的一部分。 – Agnieszka