Create list of items in PowerShell using XML file

僤鯓⒐⒋嵵緔 提交于 2020-01-17 04:39:05

问题


I have a XML file in which files are put. My target is to let a PowerShell script show a list of all the files and their properties.

My XML File:

<FileList>
    <File>  
        <Path>C:\File1.txt</Path>
        <MaxSize>20000</MaxSize>
    </File>

    <File>  
        <Path>C:\File2.txt</Path>
        <MaxSize>20000</MaxSize>
    </File>
</FileList>

My output in PowerShell needs to retrieve the file and the size of it.

Example Output:

File1: 4mb (max size= 20000mb)
File2: 3mb (max size= 20000mb)

Later, I later want to create a method to check if each file is below their max size (but first I need to check if I can retrieve them of course)

I'm trying to find a method where I can cast all of the files from the XML to a list or array (of files) in PowerShell but haven't succeeded. What are best practices when trying to achieve this?

Current code:

$files = $configFile.SelectNodes("FileList/File")

foreach ($file in $files) {
  Write-Host $file.Path
}
break

回答1:


Create custom objects from your XML data and the file properties, and collect the objects in a variable, e.g. like this:

$list = foreach ($file in $files) {
  $f = Get-Item $file.Path
  New-Object -Type PSObject -Property @{
    Name    = $f.Name
    Path    = $file.Path
    Size    = $f.Length
    MaxSize = [int]$file.MaxSize
  }
}

Alternatively you could add calculated properties to FileInfo objects:

$list = foreach ($file in $files) {
  Get-Item $file.Path | Select-Object *,@{n='MaxSize';e={[int]$file.MaxSize}}
}


来源:https://stackoverflow.com/questions/42929294/create-list-of-items-in-powershell-using-xml-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!