我很挣扎,想知道是否有人可以帮助我...
我有很多文件夹,每个文件夹中都有一个大的xml文件。我想通过我的文件夹递归并找到我的xml文件。一旦我有了这个xml,我想从xml中提取一些值并在带有版本子文件夹的Web服务器上创建一个文件夹,然后从父文件夹中将jpg文件复制到它。到目前为止,我可以获得单个xml并返回字段的所有值,但无法根据值创建文件夹。如果文件夹存在则脚本忽略会很好。我的xml看起来像这样......
DATA
ASSET
所以结果应该是这样的文件夹结构
ABC123 \
1\
FORD\
black.jpg
FERRARI\
red.jpg
对于帖子中数据质量差,第一次发帖而无法让它工作而道歉
答案 0 :(得分:1)
以下是可行的方法:
$xml = [xml]@'
<Data>
<Asset>
<Part version="1" partnumber="ABC123">
<Car make="Ford" colour="Black.jpg"/>
<Car make="Ferrari" colour="Red.jpg"/>
</Part>
</Asset>
</Data>
'@
$xmlPath = "C:\foo"
$pathRoot = "\\server\share\"
foreach ($part in $xml.Data.Asset.Part)
{
$dir = $part.partnumber
mkdir $pathRoot\$dir -WhatIf
foreach ($car in $part.Car)
{
$dir = Join-Path $dir $car.make
mkdir $pathRoot\$dir -WhatIf
$colour = $car.colour
Copy-Item $xmlPath\$dir\$colour $pathRoot\$dir\$colour -WhatIf
}
}
$ xmlPath将指向包含xml文件的目录。我假设你可以从那里复制jpg文件。