2014-01-10 36 views
1

我有以下簡單的PowerShell腳本:打開文件夾,並最大限度地提高文件夾窗口

ii E:\Source\Development\websites\example.com.au\root 
ii E:\Source\Development\websites\example.com.au 
ii E:\Source\Development\websites\example.com.au\css 
ii E:\Source\Development\websites\example.com.au\database 
ii E:\Source\Development\websites\example.com.au\js 

然而,當文件夾窗口打開時,他們往往不以全屏最大化。我必須手動點擊每個文件夾的窗口,然後從窗口菜單中選擇「最大化」。對於比所示示例長得多的腳本(例如,20個以上的窗口),這是煩人的。有誰知道最大限度地利用PowerShell的這些文件夾窗口?

回答

1

使用AppActivate方法,不要忘記發送Enter鍵以獲得焦點,然後Alt空格鍵X(「%X」)最大化。

$folder = "C:\Temp" 
ii $folder 
Start-Sleep -m 100 
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') 
[Microsoft.VisualBasic.Interaction]::AppActivate("$folder") 
Start-Sleep -m 100 
[void][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') 
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}") 
[System.Windows.Forms.SendKeys]::SendWait("% X") 

包裝循環,你都設置。

+0

這就是我所追求的。它做我需要的。唯一的小問題是它不是一個乾淨的解決方案,因爲每次打開一個文件都會有一個異常錯誤。 - 錯誤消息'異常調用「AppActivate」與「1」參數:「進程'E:\ Source \ Development \ websites \ example.com.au \ root'找不到'。' – AlexanderR

1

你可以使用start-process而不是invoke-item,它可以讓你控制窗口大小。您可以通過創建一個ii函數來臨時替代別名來實現該腳本,然後在完成後將其刪除:

function ii { start-process explorer -WindowStyle Maximized -ArgumentList $args[0] } 
ii E:\Source\Development\websites\example.com.au\root 
ii E:\Source\Development\websites\example.com.au 
ii E:\Source\Development\websites\example.com.au\css 
ii E:\Source\Development\websites\example.com.au\database 
ii E:\Source\Development\websites\example.com.au\js 
Remove-Item function:ii 
+0

這不起作用。我第一次跑這個,我得到了最大化的窗戶。然後,我把窗戶變小,然後關閉它們。我再次運行腳本,但是這次窗口並沒有打開,但是在最後一個窗口大小的設置下。 – AlexanderR