2012-10-30 5 views
0

J'ai des fichiers xml qui ont la structure suivante. Je prends la version et le nom de valeurs et les stocke dans le fichier journal.Comment vérifier la valeur du noeud et en fonction de la condition consigner la valeur?

$FileList= Get-Childitem -path "Z:\XmlFiles" -Include "*.xml" -recurse | ?{$_.GetType() -ne [System.IO.DirectoryInfo]} 
    $LikeArray = @("10.21.*","10.20.*","10.11.*") 

    Foreach ($File in $Filelist) { 

     "Processing file $File.FullName" 
     $xmldata= [xml] (Get-content $File.FullName); 
     $VersionLists = $xmldata.SelectNodes("//VersionList") # Get the versionlist node 

     # If it has VersionList node 
     If ($VersionLists -ne $null) { 

      Foreach ($VersionList in $VersionLists) { 
$VersionList | Select Version | Where-Object {$_ -notlike $LikeArray } 
      } 

     } 
    } 

Mais je dois stocker le nom et la version que si elle ne possède pas les numéros de version

("10.21. ", "10,20.", "10.11. *).

J'ai modifié mon état, mais encore il affiche tout le numéro de version

Répondre

0

Voir si cela fait ce que vous voulez.

$FileList= Get-Childitem -path "Z:\XmlFiles" -Include "*.xml" -recurse | ?{$_.GetType() -ne [System.IO.DirectoryInfo]} 
$LikeArray = @("10.21","10.20","10.11") 
Foreach ($File in $Filelist) { 
     "Processing file $File.FullName" 
     $xmldata= [xml] (Get-content $File.FullName); 
     $VersionLists = $xmldata.SelectNodes("//VersionList") # Get the versionlist node 
     Foreach ($VersionList in $VersionLists) { 
     if ($LikeArray -notcontains $VersionList.Version.substring(0,5)) { 
        $VersionList | select Name, Version 
       } 
     } 
} 
Questions connexes