在PowersHell中写下以下快速iTunes演示:
$iTunes = New-Object -ComObject iTunes.Application
$LibrarySource = $iTunes.LibrarySource
foreach ($PList in $LibrarySource.Playlists)
{
write-host $PList.name
}
这很有效并且会回放播放列表名称列表。 但是,在尝试关闭iTunes时会出现警告
一个或多个应用程序正在使用iTunes脚本界面。你确定要退出吗?
显然我可以忽略该消息并按[退出]或等待20秒左右,但有没有一种干净的方式告诉iTunes我已经完成了它的工作?
Itunes 7.7.1, Windows XP
答案 0 :(得分:4)
我在我的Powershell脚本上做了一件事,它将播客添加到iTunes。我在服务器上使用Juice来下载我收听的所有播客。该脚本使用.Net方法释放COM对象。当我编写iTunes脚本时,我读过几篇文章,声明你应该使用.NET发布你的COM对象。
[void][System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$LibrarySource)
[void][System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$iTunes)
我也是从快捷方式大部分时间运行我的脚本,而不是从PowerShell提示符。
基于你的评论,我做了一些测试,我确定在针对iTunes运行时会收到消息,如果我以一种让PowerShell运行的方式运行我的脚本。 iTunes似乎跟踪了这一点。以运行后退出进程的方式运行脚本,消除了消息。
从powershell运行脚本的一种方法是在脚本前添加PowerShell。
powershell .\scriptname.ps1
上面的命令将启动您的脚本,然后退出用于运行它的进程,但仍然会离开powershell提示符。
答案 1 :(得分:0)
您应该可以将$ itunes设置为$ null。或者,$ itunes应该有一个你可以调用的退出方法。 $ itunes.quit()