0
我有一堆xml文件,在每個文件中可能有多個變體(不同的語言區域代碼en-us,en-ca,en-gb等)我是新的PowerShell,所以我可能不理解幾個概念。輸出由製表符分隔的文本到文本文件
我可以提取所有這些信息,但我無法以我想要的格式輸出它。我曾嘗試使用Out-File
,並已查看Export-Csv
,但我只是無法讓它做我想做的事。任何幫助將不勝感激。
這是我想出來的格式(內容將被複制到Excel)
File Path | ar-ae | ar-sa | cs-cz | da-dk
File 1 X X X
File 2 X X X X
File 3 X
所以基本上我想用頭是文件路徑和每種語言的表。然後,我想要列出所有文件,並在文件中存在的每個語言環境下放置一個X.
這是我的代碼
if (Test-Path ".\siteIA.txt") {
Clear-Content ".\siteIA.txt"
}
$locales = @(
"ar-ae"
"ar-sa"
"cs-cz"
"da-dk"
"de-at"
"de-ch"
"de-de"
"el-gr"
"en-au"
"en-ca"
"en-gb"
"en-hk"
"en-ie"
"en-in"
"en-nz"
"en-sg"
"en-us"
"en-za"
"es-ar"
"es-cl"
"es-co"
"es-es"
"es-mx"
"fi-fi"
"fr-be"
"fr-ca"
"fr-ch"
"fr-fr"
"he-il"
"hu-hu"
"it-it"
"ja-jp"
"ko-kr"
"nb-no"
"nl-be"
"nl-nl"
"pl-pl"
"pt-br"
"pt-pt"
"ru-ru"
"sk-sk"
"sv-se"
"tr-tr"
"zh-hk"
"zh-tw"
)
$locales = $locales | sort
$header = "Path`t" + $locales
Get-ChildItem C:\Users\tests *.xml -recurse |
% {
$outArray = @()
$file = [xml](Get-Content $_.fullname)
$path = $file.ExportedContentItem.path
$name = $file.ExportedContentItem.name
[email protected]()
$out = $path + "/" + $name + "`t"
$file.ExportedContentItem.ContentItem.Variant | % {
$availableLocales += $_.variantCulture
}
$availableLocales = $availableLocales | sort
foreach ($locale in $locales){
if ($availableLocales -contains $locale){
$out = "X"
Add-Content ".\siteIA.txt" "X`t"
} else {
$out = ""
Add-Content ".\siteIA.txt" "`t"
}
}
Add-Content ".\siteIA.txt" "T"
Add-Content ".\siteIA.txt" "E"
Add-Content ".\siteIA.txt" "S"
}
那麼什麼是不工作在當前的代碼? – JNK