2013-02-04 66 views
2

我是PowerShell的新手,剛剛發現了PowerShell ISE(3.0)。以前我用CMD窗口三個快捷:PowerShell ISE打開多個選項卡

  1. 一個對於JBoss運行服務器腳本
  2. 一個用於需要JDK6
  3. 一個用於需要JDK7

這些構建腳本生成腳本快捷方式將以正確的路徑打開窗口並設置JAVA_HOME。

現在我想創建一個快捷方式,它將在PowerShell ISE中以適當的名稱打開相應的選項卡。我在想,我可以在腳本中操作$ psISE.PowerShellTabs,但是我只能創建新的選項卡並更改名稱,我不能設法根據需要更改目錄或變量。

我該怎麼做?

回答

0

您可以使用invoke方法來運行代碼。

$NewTab = $psISE.PowerShellTabs.Add() 
$NewTab.DisplayName = "NewTab" 
sleep -m 160 
$NewTab.Invoke({cd C:\ ; cls}) 

這將創建一個新的標籤,稱之爲NEWTAB,等待它打開,將目錄更改爲C:\並清除輸出。

+0

我猜你的意思是'$ NewTab.Invoke({cd C:\; cls})',並且它接縫,當我在腳本中執行三行時,在最後一行出現異常:「無法運行腳本。」,如果我單獨執行最後一行,則可以運行 – Love

+0

這似乎是一個計時問題。我需要添加一個「sleep -m 160」來使其工作。任何小於此值的選項卡尚未打開,因此在其中運行代碼將無法工作。 – Mark

2

Mark提供的方法並不總是正常工作。您需要等待並檢查您的標籤是否準備就緒,而不是假定任意延遲。

$NewTab = $psISE.PowerShellTabs.Add() 
$NewTab.DisplayName = "NewTab" 

While (-not $NewTab.CanInvoke) { 
    Start-Sleep -m 100 
} 

$NewTab.Invoke({cd C:\ ; cls}) 
相關問題