コード内のソースに基づいてさまざまな方法で変数をKMLジェネレータに渡そうとしています。私は予想通りに動作していますが、データの配列を渡そうとすると、その特定のソースからのものはありません。ここに私の構文の例です。この例のコードに基づいてPowershellを使用して変数をKML生成に渡す
function GenerateKML($Name, $Var1, $Var2) {
$csvfiles = Get-ChildItem $global:directoryPath -include Name_*.csv -Recurse
$kml = @"
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<name>Test01</name>
$(
foreach ($csv in $csvfiles) {
$rName = $csv.Name.Split("_")[1]
'
<Folder>
<name>{0}</name>' -f $rName
$(
for ($i = 2; $i -lt $Name.Count; $i++) {
if ($Name[$i] -like $rName + "*") {
rVar1 = $Var1[$i]
rVar2 = $Var2 [$i]
}
}
Import-Csv $csv |
foreach {
'
<Placemark>
<name>{0} - {1}</name>
<TimeStamp>
<when>{5}</when>
</TimeStamp>
<description>Utilization - {4}%</description>
<styleUrl>#{5}</styleUrl>
<Point>
<coordinates>{2},{3}</coordinates>
</Point>
</Placemark>' -f $_.Name, $_.Timestamp, $rVar1, $rVar2, $_.Utilization, $($_.Timestamp -replace '^(.*)(\d\d)(.*)$','${1}00$3')
}
)
'
</Folder>'
}
)
</Document>
</kml>
"@
$kml | Out-File -Force -Encoding ascii ("Test.kml")
、することができます私はCSVファイル名に一致するものを見つけ、名前の配列を反復処理しようとしていますforループ。
rVar1とrVar2
私はKML世代に渡すためにこれらを使用します。私は試合を見つけたら続いて、私は2つの変数を設定します。これは意図したとおりに動作しない部分です。残りの部分は完全にうまく動作し、最終的に予想通りに読み込まれる動的なKMLファイルが完成します。私は近いと思うが、変数や配列が関数に正しく読み込まれるようにするための特定の構文がない。