我必须将文件从一个文件添加到另一个文件的末尾,但是一个文件的内容明显比另一个文件的内容短,所以我想继续循环更短的文件,直到更长的文件完成。我使用以下代码生成初始文件(scopeout.txt)
$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完成。
答案 0 :(得分: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++
}