2008-09-09 60 views
2

寫在PowerShell中下面作爲一個快速的iTunes演示: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

PowersHell - 我喜歡它:) – samjudson 2008-09-10 13:22:37

回答

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提示符。

+0

不幸的是,我不工作。我已經嘗試多次打開和關閉iTunes,以確保沒有其他人試圖使用iTunes,然後使用上面的行來運行我的腳本,並退出相同的結果。 – 2008-09-09 16:42:53

+0

我每天都在使用我的腳本,但我沒有收到那條消息。你有沒有其他的工具可以訪問iTunes?您是否使用任何其他iTunes對象?也許你需要重新啓動才能清理它,一旦你得到這個消息? – bruceatk 2008-09-09 17:04:32

0

您應該可以將$ itunes設置爲$ null。或者,$ iTunes應該有一個可以調用的退出方法。 $ itunes.quit()