2012-03-08 58 views
1

我正在執行一個exe參數,如下所示(我正在使用powershell)。如何從XML獲取參數並執行exe列表?

$path="C:\Program Files\RobWare\RVTools" 


$VCServer="15.3.3.3" 
$VCServer2="16.5.4.4" 
$AttachmentFile=$vcserver.xls 

&"$path\rvtools.exe" -s $VCServer -u user-p password-c ExportAll2xls -d $AttachmentDir -f $AttachmentFile 
&"$path\rvtools.exe" -s $VCServer2 -u user2 -p password123 -c ExportAll2xls -d $AttachmentDir -f $AttachmentFile 

由於我有很多的VC服務器,我認爲最好是有XML文件,然後執行這個EXE的所有VC服務器。

我想寫一個XML文件,其中所有的參數將被指定如下。

<Host> 
    <IP>15.3.3.3</IP> 
    <User>user</User> 
    <Password>password</Password> 
</Host> 

<Host> 
    <IP>16.3.3.3</IP> 
    <User>user</User> 
    <Password>password</Password> 
</Host> 

然後調用exe並從XML傳遞此參數。怎麼做 ?

回答

3

使用這樣的XML文件:

<rvToolsParams> 
    <Host> 
    <IP>15.3.3.3</IP> 
    <User>user</User> 
    <Password>password</Password> 
    </Host> 
    <Host> 
    <IP>16.3.3.3</IP> 
    <User>user</User> 
    <Password>password</Password> 
    </Host> 
</rvToolsParams> 

rvtools.xml下,這裏所說的你也可以做這些方法:

$xml = [XML](Get-Content C:\temp\rvtools.xml) 
$xml.rvToolsParams.host 

IP          User         Password 
--          ----         -------- 
15.3.3.3        user         password 
16.3.3.3        user         password 

$xml.rvToolsParams.host | % {& "$path\rvtools.exe" -s $_.IP -u $_.User -p $_.Password -c ExportAll2xls -d $AttachmentDir -f $AttachmentFile } 
15.3.3.3 
user 
password 
16.3.3.3 
user 
password 

或腳本

​​
3

可以遍歷XML文件是這樣的:

[xml] $xml = @' 
<Hosts> 
    <Host> 
     <IP>15.3.3.3</IP> 
     <User>user</User> 
     <Password>password</Password> 
    </Host> 
</Hosts> 
'@ 

$xml.SelectNodes('//Host') | % { 
    & "$path\rvtools.exe" -s $_.IP -u $_.User -p $_.Password -c ExportAll2xls -d $AttachmentDir -f $AttachmentFile 
} 

這將創建一個XMLDocument對象,並使用XPath查詢來獲取匹配,通過每一個查詢和迭代的節點的集合。 PowerShell將自動將子節點設置爲節點的屬性。

0

我會從xml構建一個哈希表,然後將其圖片化。

$params = @{ 
    Server = $xml.Host.IP 
    User = $xml.Host.User 
    Password = $xml.Host.Password 
    } 
&"$path\rvtools.exe" @params -c ExportAll2xls -d $AttachmentDir -f $AttachmentFile 
相關問題