2014-04-18 40 views
0

我想知道這是否可能。我正在嘗試製作一個腳本,我們將其稱爲主腳本。該腳本查詢數據庫以獲取我們將稱爲$svrs的服務器列表。簡單的東西。將變量傳遞給下標

我不知道該怎麼做或者如果可能的話,就是使用$srvrs.Name變量作爲這些腳本的參數,從主腳本運行一系列腳標。

$svrs = "get list sql stuff" 
$scrpath = 'D:\test' 

$scripts = Get-ChildItem $scrpath 

$scripts.Name | ForEach-Object { 
    Invoke-Expression $_ {I have no idea how to get server name variable here} 
} 

回答

1

基礎上的評論,你確實需要一個嵌套的循環,這將不會太複雜。

$Scripts | Select-object Name | % {$curScript = $_ 
            $Servers | % {.\$_ $CurScript} 
               } 
+0

如果它只是一個「MyOtherScript」這將是容易的。我正在嘗試運行位於目錄中的一系列腳本。可能高達30或40,所以我想我可能需要一個嵌套的foreach循環?我只是有問題制定它。 – Acerbity

+0

太容易了。編輯即將到來。 – JNK

+0

還是你說你想運行文件夾中的所有文件? – JNK

0

我結束了@JNK的援助,這種解決自己...

這裏是我得到了我所需要的結果。

$allServers | ForEach-Object { 
    $currentServer = $_ 
    $scripts.Name | ForEach-Object { 
     Invoke-Expression ".\$_ $currentServer" 
     } 
    }