Question
Supprimer caratère Hexa
- physyo
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
il y a 17 ans 4 jours #4350
par physyo
Réponse de physyo sur le sujet Re:Supprimer caratère Hexa
Hello
Je te remercie pour ta réponse. Désolé de ne pas t'avoir répondu avant mais j'étais en vacances.
J'ai bien regardé ton script mais il y a quelques truc qui ne fonctionne pas comme par exemple:
[code:1] Get-Content \"$CurrentFile\" -Encoding byte | Remove-LastChar $ASCIICode | set-content C:\test.txt -Encoding oem[/code:1]
Il faut utiliser Out-file nan ? Mais quand je l'utilise Out-file le fichier de sorti reste en Byte. Une idée ?
2ème chose pourrais-tu m'expliquer comment fonctionne ceci car j'ai du mal à le mettre en place
[code:1] $TempFile = [IO.Path]::GetTempFileName()
Move-Item -Path \"$TempFile\" -Destination \"$CurrentFile\"
Del \"$TempFile[/code:1]
Merci de pour ton aide.
Je te remercie pour ta réponse. Désolé de ne pas t'avoir répondu avant mais j'étais en vacances.
J'ai bien regardé ton script mais il y a quelques truc qui ne fonctionne pas comme par exemple:
[code:1] Get-Content \"$CurrentFile\" -Encoding byte | Remove-LastChar $ASCIICode | set-content C:\test.txt -Encoding oem[/code:1]
Il faut utiliser Out-file nan ? Mais quand je l'utilise Out-file le fichier de sorti reste en Byte. Une idée ?
2ème chose pourrais-tu m'expliquer comment fonctionne ceci car j'ai du mal à le mettre en place
[code:1] $TempFile = [IO.Path]::GetTempFileName()
Move-Item -Path \"$TempFile\" -Destination \"$CurrentFile\"
Del \"$TempFile[/code:1]
Merci de pour ton aide.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 4 jours #4352
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Supprimer caratère Hexa
physyo écrit:
physyo écrit:
[code:1] $TempFile = [System.IO.Path]::GetTempFileName()[/code:1]
Déplace et renomme le fichier temporaire avec le nom du fichier courant. Je fait la supposition que le fichier d'origine n'a pas a être sauvegardé, à toi de vérifier si cela correspond à ton usage :
[code:1]
Move-Item -Path \"$TempFile\" -
[/code:1]Destination \"$CurrentFile\"
La dernière instruction n'est pas nécessaire :
[code:1]
# Del \"$TempFile[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 19/03/09 14:15
Si tu mets à disposition un fichier de test sans données confidentielles ce sera plus facile.J'ai bien regardé ton script mais il y a quelques truc qui ne fonctionne pas
physyo écrit:
Le système crée un fichier temporaire de nom unique :2ème chose pourrais-tu m'expliquer comment fonctionne ceci car j'ai du mal à le mettre en place
[code:1] $TempFile = [System.IO.Path]::GetTempFileName()[/code:1]
Déplace et renomme le fichier temporaire avec le nom du fichier courant. Je fait la supposition que le fichier d'origine n'a pas a être sauvegardé, à toi de vérifier si cela correspond à ton usage :
[code:1]
Move-Item -Path \"$TempFile\" -
[/code:1]Destination \"$CurrentFile\"
La dernière instruction n'est pas nécessaire :
[code:1]
# Del \"$TempFile[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 19/03/09 14:15
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- physyo
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
il y a 17 ans 2 jours #4395
par physyo
Réponse de physyo sur le sujet Re:Supprimer caratère Hexa
Salut
Merci pour ton explication.
Je te joins un extrait du fichier pour que se sois plus claire pour toi
La cmdlet out-file dois modifier le \"é\" de Réf en \",\"
puis supprimé le caractère hexa
J'espère que je suis claire pour toi sinon je suis à t'as disposition Merci
Merci pour ton explication.
Je te joins un extrait du fichier pour que se sois plus claire pour toi
La cmdlet out-file dois modifier le \"é\" de Réf en \",\"
puis supprimé le caractère hexa
J'espère que je suis claire pour toi sinon je suis à t'as disposition Merci
La pièce jointe fichier.txt est absente ou indisponible
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 2 jours #4399
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Supprimer caratère Hexa
Effectivement l'approche autour d'un tableau de byte n'était pas correcte. Donc changement cap, on utilise un tableau de string et la recherche se fait à l'aide d'une expression régulière. le principe du filtre ne change pas.
[code:1]
function Remove-LastString([String]$Match){
#Supprime le dernier élément de la collection reçue via le pipeline
#Recoit un tableau de String
#Une fonction sans bloc (begin, process, end) est considérée comme
#une fonction déclarant uniquement le bloc End
#Dans ce cas on attend de recevoir tous les objets du pipeline, issu du segment précédent,
#avant de continuer le traitement.
#Tous les éléments sont accessible dans la variable automatique $input, accessible uniquement
#dans le bloc End
#Par exemple pour trier une collection on doit connaitre auparavant l'ensemble de ces éléments.
$ArrayOfString=@($input) #Cast de la varaible $input en un tableau. A l'origine $input est une énumération, pas une collection indexée
$LastItem=$ArrayOfString.Count-1
#Test si la dernière ligne contient la chaîne recherchée
if ($ArrayOfString[$LastItem] -match \"^\$($match)$\"«»)
#Réemet tous les élements sauf le dernier
{ $ArrayOfString[0..($LastItem-1)] }
else
#Réemet tous les élements
{ $ArrayOfString }
}
#cast (change le type)d'un nombre hexa en un caractère puis en une string.
$StringToMatch=[string][char]0x1C
$CurrentFile=\"g:\temp\fichier.txt\"
$TempFile = [IO.Path]::GetTempFileName()
#On cast le résultat de Get-Content pour obtenir un tableau de string au lieu d'un tableau d'objet
(Get-Content \"$CurrentFile\"«») -as [String[]]| Remove-LastString $StringToMatch | Out-File \"$TempFile\" -Encoding oem
type $TempFile
# Attention
Move-Item -Path \"$TempFile\" -Destination \"$CurrentFile\"
[/code:1]
La dernière instruction nécessite qq contrôle préliminaire si on recopie le fichier dans le même répertoire. Je te laisse faire.
Ici
[code:1]
function Remove-LastString([String]$Match){
#Supprime le dernier élément de la collection reçue via le pipeline
#Recoit un tableau de String
#Une fonction sans bloc (begin, process, end) est considérée comme
#une fonction déclarant uniquement le bloc End
#Dans ce cas on attend de recevoir tous les objets du pipeline, issu du segment précédent,
#avant de continuer le traitement.
#Tous les éléments sont accessible dans la variable automatique $input, accessible uniquement
#dans le bloc End
#Par exemple pour trier une collection on doit connaitre auparavant l'ensemble de ces éléments.
$ArrayOfString=@($input) #Cast de la varaible $input en un tableau. A l'origine $input est une énumération, pas une collection indexée
$LastItem=$ArrayOfString.Count-1
#Test si la dernière ligne contient la chaîne recherchée
if ($ArrayOfString[$LastItem] -match \"^\$($match)$\"«»)
#Réemet tous les élements sauf le dernier
{ $ArrayOfString[0..($LastItem-1)] }
else
#Réemet tous les élements
{ $ArrayOfString }
}
#cast (change le type)d'un nombre hexa en un caractère puis en une string.
$StringToMatch=[string][char]0x1C
$CurrentFile=\"g:\temp\fichier.txt\"
$TempFile = [IO.Path]::GetTempFileName()
#On cast le résultat de Get-Content pour obtenir un tableau de string au lieu d'un tableau d'objet
(Get-Content \"$CurrentFile\"«») -as [String[]]| Remove-LastString $StringToMatch | Out-File \"$TempFile\" -Encoding oem
type $TempFile
# Attention
Move-Item -Path \"$TempFile\" -Destination \"$CurrentFile\"
[/code:1]
La dernière instruction nécessite qq contrôle préliminaire si on recopie le fichier dans le même répertoire. Je te laisse faire.
Ici
est transformé en2 Réf Cde Client
<br><br>Message édité par: Laurent Dardenne, à: 19/03/09 15:032 R'f Cde Client
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- physyo
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
il y a 16 ans 11 mois #4429
par physyo
Réponse de physyo sur le sujet Re:Supprimer caratère Hexa
Nickel ça marche très bien je te remercie pour ton aide sans toi c'était pas possible.
Mais j'ai néanmoins un dernier problème pour récupérer la nom du fichier.
J'ai du mal à trouver comment je dois placer la variable $_.Fullname dans mon script.
Merci
Mais j'ai néanmoins un dernier problème pour récupérer la nom du fichier.
J'ai du mal à trouver comment je dois placer la variable $_.Fullname dans mon script.
Merci
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 11 mois #4430
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Supprimer caratère Hexa
physyo écrit:

Si tu as rédigé ton \"scénario\", comme je te le conseillais dans mes premiers posts, tu devrais trouver la réponse.
Découper les actions en plusieurs segment de pipeline.
Bah moi j'ai du mal à lire le script dont tu parlesJ'ai du mal à trouver comment je dois placer la variable $_.Fullname dans mon script.
Si tu as rédigé ton \"scénario\", comme je te le conseillais dans mes premiers posts, tu devrais trouver la réponse.
Découper les actions en plusieurs segment de pipeline.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.079 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Supprimer caratère Hexa