由于脚本而退出的iTunes警告消息

时间:2008-09-09 16:27:56

标签: powershell itunes

在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

2 个答案:

答案 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()