2012-11-27 41 views
0

我必須從一個文件添加文本到另一個文件的末尾,但一個文件的內容比其他顯著較短,所以我想通過較短的保持循環文件,直到較長的文件是完整的。我生成INTIAL文件(scopeout.txt)用下面的代碼Powershell的循環,並添加內容到文件

$a = "NETSH Dhcp Server 192.168.10.1 Scope " 
$b = " set optionvalue 6 IPADDRESS " 
$Scopelist = Get-Content C:\ListOfScopes.txt 

foreach ($i in $ListOfScopes) 

{ 
$a + $i + $b >> C:\TestArea\scopeout.txt 
} 

然後我有一個文件名爲newdns.txt包含4個條目(192.168.0.10,192.168.0.11,192.168.0.12,192.168.0.13 )。我想讀scopeout.txt的每一行,加newdns.txt 1個條目,然後移動到每個文件中的下一行。我想,直到scopeout.txt完成重複這個過程,所以最終文件將類似於以下內容:

NETSH Dhcp Server 192.168.10.1 Scope 192.168.50.1 set optionvalue 6 IPADDRESS 192.168.0.10 
NETSH Dhcp Server 192.168.10.1 Scope 192.168.51.0 set optionvalue 6 IPADDRESS 192.168.0.11 
NETSH Dhcp Server 192.168.10.1 Scope 192.168.52.0 set optionvalue 6 IPADDRESS 192.168.0.12 
NETSH Dhcp Server 192.168.10.1 Scope 192.168.53.0 set optionvalue 6 IPADDRESS 192.168.0.13 
NETSH Dhcp Server 192.168.10.1 Scope 192.168.54.0 set optionvalue 6 IPADDRESS 192.168.0.10 
NETSH Dhcp Server 192.168.10.1 Scope 192.168.55.0 set optionvalue 6 IPADDRESS 192.168.0.11 
NETSH Dhcp Server 192.168.10.1 Scope 192.168.56.0 set optionvalue 6 IPADDRESS 192.168.0.12 
NETSH Dhcp Server 192.168.10.1 Scope 192.168.57.0 set optionvalue 6 IPADDRESS 192.168.0.13 
NETSH Dhcp Server 192.168.10.1 Scope 192.168.58.0 set optionvalue 6 IPADDRESS 192.168.0.10 
NETSH Dhcp Server 192.168.10.1 scope 192.168.59.0 set optionvalue 6 IPADDRESS 192.168.0.11 

我已經嘗試使用foreach語句,但我不能確定如何2條的foreach語句組合以及如何保持通過newdns.txt循環,直到scopeout.txt完成。

回答

2

試試這個:

$c = 0 
$ip = Get-Content C:\newdns.txt 

Get-Content C:\ListOfScopes.txt | Foreach-Object{ 
    if ($c -gt 3) {$c=0} 
    "NETSH Dhcp Server 192.168.10.1 Scope $_ set optionvalue 6 IPADDRESS $($ip[$c])" 
    $c++ 
} 
+0

也就是說正是我需要的,非常完美。非常感謝您的幫助 – Stereostar