Question Stockage de donnée binaire dans un script (Résolu)

Plus d'informations
il y a 16 ans 6 jours #2202 par Jacques Barathon
L'encodage et le décodage de données Base64 sont tout à fait possibles avec PowerShell via le Framework .Net. Voir le blog suivant pour un exemple en C# mais qui ne devrait pas poser de problème particulier en PowerShell:

weblogs.asp.net/cfrazier/archive/2005/05/27/409405.aspx

L'exemple est également intéressant car il montre l'utilisation d'une Here String pour stocker les données dans le script lui-même. Je ne vais pas me lancer dans une explication détaillée des Here Strings, mais en très gros c'est un type de chaîne qui peut s'étendre sur un nombre à priori illimité de lignes et contenir n'importe quels caractères.

En PowerShell, une Here String a une syntaxe légèrement plus contraignante qu'en C#: il faut forcément aller à la ligne après le @\" qui signale le début de la chaîne, et la chaîne doit se terminer par les caractères \"@ qui doivent être tout seuls sur la dernière ligne. On aura même intérêt à utiliser @' et '@ pour éviter des substitutions inopinées de variables dans le texte si celui-ci contient des $.

Tout ça devrait permettre à tonic8 de démarrer en reproduisant à très peu de choses près le type de syntaxe de Rebol. Pour aller plus loin, il est possible de passer par les classes System.IO pour manipuler des flux de données binaires.

Janel

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

Plus d'informations
il y a 16 ans 1 jour #2240 par Gabriel
ookkayyy :woohoo: Alors d'abord chapeau, merci, chapeau c'est pile poil ca. a pu qu'a en faire une fonction pour jouer avec plusieurs fichiers encodés...

Juste dans l'exemple que tu donnes il utilise System.Drawing. Et le total newbie que je suis comprend pas, l'encodage 64 convertie le fichier mais pourquoi pour le decoder il faut le \"redessiner\" (System.Drawing.Imaging.ImageFormat.Gif). Si ca vient d'un e-mail. Le monsieur il a bien des amis qui lui envoi pas que du gif par e-mail genre du ppt et autre. hors le logiciel e-mail prend la donnée et la decode sans se soucier de se que c'est, on peut meme dire que si je renomme un fichier gif en ppt que je l'envoie, au decodage il aura créé un fichier gif mais renommé en ppt.

Merchi de vos lumieres...

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

Plus d'informations
il y a 15 ans 9 mois #2553 par Gabriel
Alors j'ai trouvé plus simple :woohoo:

Il faut installer les \"PowerShell Community Extensions\", il y a directement la fonction pour convertir de/vers base64
[code:1]
$b64 = ConvertTo-Base64 \"C:\Documents and Settings\tonic8\My Documents\My Pictures\smileys\ange02.gif\"
[/code:1]
on obtient ca:
[code:1]
PS z:\> $b64
R0lGODlhEgAYANQUAAkJCaeFDe7KGLyPClJCCo9qB8fFw72zoHBdJ4qFeOfl5MyuEqioqF5GDZpt
BdnVzCIiIv7gIJuVhlxcXPX19dGeCnppPEIyEt+0EnJiOkJCQmhSErKysp96Cq6SDgAAACH/C05F
VFNDQVBFMi4wAwEAAAAh+QQJZAAfACwAAAAAEgAYAAAFyuBnTJoGAWgKlZPxSVPCGApFfZ+tGEwy
STAZzYbT8XwSEcmUUrFcuKh0Sq1ap5SHxNJoWCSPG1Uh2QQWAsEisJEopo9MRxCpR9KYQuYRfWwW
...
[/code:1]
pour l'extraire il suffit de l'enregistrer

[code:1]
$b64 | ConvertFrom-Base64 -OutputPath c:\toto.gif
[/code:1]

ca tient dans la main ca tient dans la main...

on peut donc par exemple inclure une dll a enregistrer dans le fichier ps1. ca peut etre tres pratique (comme très dangereux d'ailleurs...)

merci

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

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