Question
Modification mise en forme fichier texte
- Gizmo59
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 9 ans 11 mois #21697
par Gizmo59
Modification mise en forme fichier texte a été créé par Gizmo59
Bonjour à tous,
Une commande powershell me renvoie un fichier texte avec les lignes suivantes :
Je voudrais réaliser un srcipt poweshell pour modifier la mise en forme de mon fichier texte. Il devrait :
1 - Afficher le nom de l'attribute name (ca ok)
2 - Mettre un \" - \" à la suite
C'est là que ca se complique enormement pour moi pauvre debutant :
3 - Lire la valeur de \"current value\" et regarder si elle existe dans \"possibleValues\"
4- Si elle existe, rajouter à la suite de la ligne rajouter à la ligne la \"possibleValueDescription\" correspondant à la current value
5 - Si elle n'existe pas, afficher la \"currentValue\" à la fin de la ligne
J'espère que c'est clair .....
Merci beaucoup pour le coup de main.
PS : J'ai essayé avec les fonctions try / catch mais je n'y arrive pas
Une commande powershell me renvoie un fichier texte avec les lignes suivantes :
La pièce jointe attributename_value_possiblevalue_extract.txt est absente ou indisponible
Je voudrais réaliser un srcipt poweshell pour modifier la mise en forme de mon fichier texte. Il devrait :
1 - Afficher le nom de l'attribute name (ca ok)
2 - Mettre un \" - \" à la suite
C'est là que ca se complique enormement pour moi pauvre debutant :
3 - Lire la valeur de \"current value\" et regarder si elle existe dans \"possibleValues\"
4- Si elle existe, rajouter à la suite de la ligne rajouter à la ligne la \"possibleValueDescription\" correspondant à la current value
5 - Si elle n'existe pas, afficher la \"currentValue\" à la fin de la ligne
J'espère que c'est clair .....
Merci beaucoup pour le coup de main.
PS : J'ai essayé avec les fonctions try / catch mais je n'y arrive pas
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 11 mois #21700
par Philippe
Réponse de Philippe sur le sujet Re:Modification mise en forme fichier texte
bonjour Gizmo59
[code:1]AttributeName CurrentDescription
AC Power Recovery Mode Last
Admin Setup Lockout 3
Boot Mode BIOS
Chassis Intrusion Disable
Embedded SATA Controller AHCI [/code:1]
c'est un essai avec un objet recréé à la main à partir de ton fichier
[code:1]
# creation d'un objet avec les données du bios
$bios = @()
$Attributebios = new-object Psobject
$Attributebios | Add-member -Name \"AttributeName\" -Membertype \"Noteproperty\" -Value \"AC Power Recovery Mode\"
$Attributebios | Add-member -Name \"CurrentValue\" -Membertype \"Noteproperty\" -Value @(2)
$Attributebios | Add-member -Name \"PossibleValues\" -Membertype \"Noteproperty\" -Value @(1;2;3)
$Attributebios | Add-member -Name \"PossibleValuesDescription\" -Membertype \"Noteproperty\" @(\"Off\"; \"Last\"; \"On\"«»)
$bios += $Attributebios
$Attributebios = new-object Psobject
$Attributebios | Add-member -Name \"AttributeName\" -Membertype \"Noteproperty\" -Value \"Admin Setup Lockout\"
$Attributebios | Add-member -Name \"CurrentValue\" -Membertype \"Noteproperty\" -Value @(3)
$Attributebios | Add-member -Name \"PossibleValues\" -Membertype \"Noteproperty\" -Value @(1;2)
$Attributebios | Add-member -Name \"PossibleValuesDescription\" -Membertype \"Noteproperty\" @(\"Disable\"; \"Enable\"«»)
$bios += $Attributebios
$Attributebios = new-object Psobject
$Attributebios | Add-member -Name \"AttributeName\" -Membertype \"Noteproperty\" -Value \"Boot Mode\"
$Attributebios | Add-member -Name \"CurrentValue\" -Membertype \"Noteproperty\" -Value @(1)
$Attributebios | Add-member -Name \"PossibleValues\" -Membertype \"Noteproperty\" -Value @(1;2)
$Attributebios | Add-member -Name \"PossibleValuesDescription\" -Membertype \"Noteproperty\" @(\"BIOS\"; \"UEFI\"«»)
$bios += $Attributebios
$Attributebios = new-object Psobject
$Attributebios | Add-member -Name \"AttributeName\" -Membertype \"Noteproperty\" -Value \"Chassis Intrusion\"
$Attributebios | Add-member -Name \"CurrentValue\" -Membertype \"Noteproperty\" -Value @(1)
$Attributebios | Add-member -Name \"PossibleValues\" -Membertype \"Noteproperty\" -Value @(1;2;3)
$Attributebios | Add-member -Name \"PossibleValuesDescription\" -Membertype \"Noteproperty\" @(\"Disable\"; \"Enable\"; \"Silent\"«»)
$bios += $Attributebios
$Attributebios = new-object Psobject
$Attributebios | Add-member -Name \"AttributeName\" -Membertype \"Noteproperty\" -Value \"Embedded SATA Controller\"
$Attributebios | Add-member -Name \"CurrentValue\" -Membertype \"Noteproperty\" -Value @(4)
$Attributebios | Add-member -Name \"PossibleValues\" -Membertype \"Noteproperty\" -Value @(1;3;4;5)
$Attributebios | Add-member -Name \"PossibleValuesDescription\" -Membertype \"Noteproperty\" @(\"Off\"; \"ATA\"; \"AHCI\"; \"RAID\"«»)
$bios += $Attributebios
Remove-Variable Attributebios
$bios
# a partir d'ici le vraie script
# ci dessous la commande que tu fais sans le ft ou formt-table ni le set-content ou equivalent qui ecri dans le fichier
# le resultat de la cmd est renvoyer dans la variable $bios
# $bios = get-wmi......
$bios | foreach {
$Current = $_
$rang = 0
$desc = $null
$_.PossibleValues | foreach {
if ($Current.CurrentValue -eq $_) {
$desc = $Current.PossibleValuesDescription[$rang]
}
$rang += 1
}
$_ | select AttributeName, @{n=\"CurrentDescription\";e={if ($desc) {$desc} else {$current.CurrentValue}}}
}
[/code:1]
avec les infos que j'ai je peut pas plus
si tu execute une cmd powershell, il vaut mieux que tu travail avec l'objet cree car avec le fichier texte ça sera tres difficile d'avoir ceci :Une commande powershell me renvoie un fichier texte avec les lignes suivantes :
[code:1]AttributeName CurrentDescription
AC Power Recovery Mode Last
Admin Setup Lockout 3
Boot Mode BIOS
Chassis Intrusion Disable
Embedded SATA Controller AHCI [/code:1]
c'est un essai avec un objet recréé à la main à partir de ton fichier
[code:1]
# creation d'un objet avec les données du bios
$bios = @()
$Attributebios = new-object Psobject
$Attributebios | Add-member -Name \"AttributeName\" -Membertype \"Noteproperty\" -Value \"AC Power Recovery Mode\"
$Attributebios | Add-member -Name \"CurrentValue\" -Membertype \"Noteproperty\" -Value @(2)
$Attributebios | Add-member -Name \"PossibleValues\" -Membertype \"Noteproperty\" -Value @(1;2;3)
$Attributebios | Add-member -Name \"PossibleValuesDescription\" -Membertype \"Noteproperty\" @(\"Off\"; \"Last\"; \"On\"«»)
$bios += $Attributebios
$Attributebios = new-object Psobject
$Attributebios | Add-member -Name \"AttributeName\" -Membertype \"Noteproperty\" -Value \"Admin Setup Lockout\"
$Attributebios | Add-member -Name \"CurrentValue\" -Membertype \"Noteproperty\" -Value @(3)
$Attributebios | Add-member -Name \"PossibleValues\" -Membertype \"Noteproperty\" -Value @(1;2)
$Attributebios | Add-member -Name \"PossibleValuesDescription\" -Membertype \"Noteproperty\" @(\"Disable\"; \"Enable\"«»)
$bios += $Attributebios
$Attributebios = new-object Psobject
$Attributebios | Add-member -Name \"AttributeName\" -Membertype \"Noteproperty\" -Value \"Boot Mode\"
$Attributebios | Add-member -Name \"CurrentValue\" -Membertype \"Noteproperty\" -Value @(1)
$Attributebios | Add-member -Name \"PossibleValues\" -Membertype \"Noteproperty\" -Value @(1;2)
$Attributebios | Add-member -Name \"PossibleValuesDescription\" -Membertype \"Noteproperty\" @(\"BIOS\"; \"UEFI\"«»)
$bios += $Attributebios
$Attributebios = new-object Psobject
$Attributebios | Add-member -Name \"AttributeName\" -Membertype \"Noteproperty\" -Value \"Chassis Intrusion\"
$Attributebios | Add-member -Name \"CurrentValue\" -Membertype \"Noteproperty\" -Value @(1)
$Attributebios | Add-member -Name \"PossibleValues\" -Membertype \"Noteproperty\" -Value @(1;2;3)
$Attributebios | Add-member -Name \"PossibleValuesDescription\" -Membertype \"Noteproperty\" @(\"Disable\"; \"Enable\"; \"Silent\"«»)
$bios += $Attributebios
$Attributebios = new-object Psobject
$Attributebios | Add-member -Name \"AttributeName\" -Membertype \"Noteproperty\" -Value \"Embedded SATA Controller\"
$Attributebios | Add-member -Name \"CurrentValue\" -Membertype \"Noteproperty\" -Value @(4)
$Attributebios | Add-member -Name \"PossibleValues\" -Membertype \"Noteproperty\" -Value @(1;3;4;5)
$Attributebios | Add-member -Name \"PossibleValuesDescription\" -Membertype \"Noteproperty\" @(\"Off\"; \"ATA\"; \"AHCI\"; \"RAID\"«»)
$bios += $Attributebios
Remove-Variable Attributebios
$bios
# a partir d'ici le vraie script
# ci dessous la commande que tu fais sans le ft ou formt-table ni le set-content ou equivalent qui ecri dans le fichier
# le resultat de la cmd est renvoyer dans la variable $bios
# $bios = get-wmi......
$bios | foreach {
$Current = $_
$rang = 0
$desc = $null
$_.PossibleValues | foreach {
if ($Current.CurrentValue -eq $_) {
$desc = $Current.PossibleValuesDescription[$rang]
}
$rang += 1
}
$_ | select AttributeName, @{n=\"CurrentDescription\";e={if ($desc) {$desc} else {$current.CurrentValue}}}
}
[/code:1]
avec les infos que j'ai je peut pas plus
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.037 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Modification mise en forme fichier texte