Question Supprimer caratère Hexa

Plus d'informations
il y a 15 ans 3 semaines #4460 par physyo
Réponse de physyo sur le sujet Re:Supprimer caratère Hexa
Toujours le même résultat.

Le nom du fichier est redevenu tmp*.tmp

Quand je lance le Get-Content \"CurrentFile\" ...
c'est pas la que je dois prendre la valeur du nom avec $_.Fullname ?


je devrai faire quelques chose du genre

[code:1](Get-Content \"$CurrentFile $($_.Fullname)\"«») -as [String[]] | Remove-LastString $StringToMatch | Out-File \"$TempFile\" -Encoding oem
type $TempFile
Move-Item -Path \"$TempFile\" -Destination \"c:\fac_ged\ok\$($_.FullName)\"
}[/code:1]

??

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 semaines #4462 par Laurent Dardenne
physyo écrit:

Quand je lance le Get-Content \"CurrentFile\" ...
c'est pas la que je dois prendre la valeur du nom avec $_.Fullname ?

Ralenti :laugh:
Dans ta construction il y a une boucle et un pipeline.
La boucle utilise $Currentfile pour référencer l'elément courant, ici un fichier.
Le pipeline utilise le $_ pour désigner l'élément courant dans le pipe, ici un tableau de string.

Si tu souhaites utiliser le symbole $_ il doit bien provenir d'un pipeline. Et dans ce code, sans rentrer dans les détails,il n'y en a qu'un, c'est celui-ci:
[code:1](Get-Content \"$CurrentFile\"«») -as [String[]] | Remove-LastString $StringToMatch | Out-File \"$TempFile\" -Encoding oem [/code:1]
De plus c'est en interne que les cmdlet référencent l'objet courant, ici on ne précise pas le symbole $_. On passe des objets dans le pipe et PowerShell se débrouille.

Une fois ce pipeline terminé le symbole $_ n'existe plus, tu ne peux donc pas \"prendre la valeur du nom avec $_.Fullname\" en dehors du pipeline. Là tu fais de la magie ;)

Je n'ai pas fait attention au code précédent où tu mixes les différentes constructions proposées jusqu'ici, ce doit être ce code :
[code:1]Move-Item -Path \"$TempFile\" -Destination \"c:\fac_ged\ok\$($CurrentFile.FullName)\" [/code:1]
Si tu ne comprends pas les principes de base, tu vas finir par te faire des trous dans le cerveau. Pour ça aussi PowerShell est assez puissant.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 semaines #4469 par physyo
Réponse de physyo sur le sujet Re:Supprimer caratère Hexa
J'ai enfin réussi

[code:1]function Remove-LastString([String]$Match){
$ArrayOfString=@($input)
$LastItem=$ArrayOfString.Count-1
if ($ArrayOfString[$LastItem] -match \"^\$($match)$\"«»)
{ $ArrayOfString[0..($LastItem-1)] }
else
{ $ArrayOfString }
}
$StringToMatch=[string][char]0x1C
$Path= \"C:\FAC_GED\"
foreach ($CurrentFile in dir \"$Path\*.txt\"«»)
{
$TempFile = [IO.Path]::GetTempFileName()
(Get-Content \"$CurrentFile\"«») -as [String[]] |Remove-LastString $StringToMatch | Out-File \"$TempFile\" -Encoding oem
type $TempFile
Remove-item $CurrentFile
Move-Item -Path \"$TempFile\" -Destination \"$Currentfile\"
}[/code:1]

Mais je sais toujours pas comment je peux faire pour le mettre dans un autre répertoire

Peux-tu m'expliquer cette ligne
[code:1]Move-Item -Path \"$TempFile\" -Destination \"c:\fac_ged\ok\$($CurrentFile.FullName)\"[/code:1]

Car $Currentfile = au Chemin du fichier c'est bien ça ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 semaines #4470 par physyo
Réponse de physyo sur le sujet Re:Supprimer caratère Hexa
J'ai enfin réussi

[code:1]function Remove-LastString([String]$Match){
$ArrayOfString=@($input)
$LastItem=$ArrayOfString.Count-1
if ($ArrayOfString[$LastItem] -match \"^\$($match)$\"«»)
{ $ArrayOfString[0..($LastItem-1)] }
else
{ $ArrayOfString }
}
$StringToMatch=[string][char]0x1C
$Path= \"C:\FAC_GED\"
foreach ($CurrentFile in dir \"$Path\*.txt\"«»)
{
$TempFile = [IO.Path]::GetTempFileName()
(Get-Content \"$CurrentFile\"«») -as [String[]] |Remove-LastString $StringToMatch | Out-File \"$TempFile\" -Encoding oem
type $TempFile
Remove-item $CurrentFile
Move-Item -Path \"$TempFile\" -Destination \"$Currentfile\"
}[/code:1]

Mais je sais toujours pas comment je peux faire pour le mettre dans un autre répertoire

Peux-tu m'expliquer cette ligne
[code:1]Move-Item -Path \"$TempFile\" -Destination \"c:\fac_ged\ok\$($CurrentFile.FullName)\"[/code:1]

Car $Currentfile = au Chemin du fichier c'est bien ça ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 semaines #4471 par Laurent Dardenne
physyo écrit:

Peux-tu m'expliquer cette ligne

Je commence à m'embrouiller :silly:
Pour ceci
[code:1]\"c:\fac_ged\ok\$($CurrentFile.FullName)\"[/code:1]
Je m'adaptais à ton exemple partant de $_, mais c'est redondant car $CurrentFile est suffisant.
physyo écrit:

J'ai enfin réussi

Tu m'en vois ravi :)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 semaines #4472 par physyo
Réponse de physyo sur le sujet Re:Supprimer caratère Hexa
Moi aussi je suis embrouiller.

Se que je ne comprends pas c'est pourquoi l'on doit utiliser la variable $Currentfile dans le move alors que je veux changer la destination du fichier modifié.

Car dans le script qui fonctionne je fais un remove-item $currentfile pour supprimer le fichier source pour pouvoir écrire dans le même répertoire.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.084 secondes
Propulsé par Kunena