Question Pb de caractères accentués avec Evernote

Plus d'informations
il y a 4 ans 8 mois #29222 par Laurent Dardenne
Il reste un souci avec les noms de notebook qui contiennent des espaces :
[code:1]
PS C:\temp> & $ENscript listNotebooks
Mon carnet de notes
Test accentué
Test
Accentué

PS C:\temp> $ENscript = \"C:\Program Files (x86)\Evernote\Evernote\ENScript.exe\"
PS C:\temp> & $ENscript listNotebooks |% {& $ENscript exportNotes /q \"notebook:$_\" /f \"c:\temp\$_.enex\" ;$LASTEXITCODE}
1
1
0
1
PS C:\temp> dir


Directory: C:\temp


Mode LastWriteTime Length Name
----

----
-a---- 23/08/2019 09:27 2429 evernote.ps1
-a---- 23/08/2019 09:51 620 Test.enex


PS C:\temp> [console]::OutputEncoding = [System.Text.Encoding]::UTF8
PS C:\temp> & $ENscript listNotebooks |% {& $ENscript exportNotes /q \"notebook:$_\" /f \"c:\temp\$_.enex\" ;$LASTEXITCODE}
1
1
0
0
PS C:\temp> dir


Directory: C:\temp


Mode LastWriteTime Length Name
----

----
-a---- 23/08/2019 09:51 652 Accentué.enex
-a---- 23/08/2019 09:27 2429 evernote.ps1
-a---- 23/08/2019 09:51 620 Test.enex

[/code:1]
Je ne vois pas ce que je peux faire de plus :unsure:

Tutoriels PowerShell

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

Plus d'informations
il y a 4 ans 7 mois #29223 par Jose Hidalgo
Merci pour tes efforts. J'ai à peu près compris tes posts, j'ai passé une demi-heure à faire des tests, mais je n'arrive pas à reproduire le résultat final. :unsure:

Si j'ai bien compris, tu as réussi à résoudre le pb des accents, mais pas celui des espaces. C'est déjà un bon début, non ?

Ce que je n'arrive pas à assembler c'est le script qui en résulterait, toutes mes tentatives pour le reproduire ayant échoué. J'ai compris tes tests avec les 1 et les 0, je vois que ça a marché pour les accents, il me manque juste le script résultant...

Et peut-être qu'après quelqu'un d'autre trouvera une solution pour ce pb d'espaces. Une chose à la fois !

PS : mon script de test du moment est celui-ci :

[code:1]$ENscript = \"C:\Program Files (x86)\Evernote\Evernote\ENScript.exe\"
$BackupLocation = \"C:\temp\\"
$date = get-date -uformat \"%Y-%m-%d\"
$BackupDir = $BackupLocation + \"Backup \" + $date
if ( ! (Test-Path $BackupDir) ) { md $BackupDir }

& $ENscript listNotebooks | % {
$name=$_
\"Backing up \" + $name + \"...\"
$BackupFileName = $BackupDir + \"\\" + $name + \".enex\"
& $ENscript exportNotes /q \"notebook:$_\" /f \"C:\temp\Backup 2019-08-23\$_.enex\" ; $LASTEXITCODE
}
[/code:1]
Mais ça ne marche pas, les accents ne sont toujours pas sauvegardés...

EDIT - pour les espaces, une solution trouvée ailleurs sur le Net recommande de mettre trois paires de guillements, ce qui donnerait ceci : \&quot;\&quot;\&quot;notebook:$_\&quot;\&quot;\&quot; . Dis-moi ce que tu en penses, moi je suis perdu pour le moment ! :unsure:<br><br>Message édité par: Jose Hidalgo, à: 23/08/19 12:10

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

Plus d'informations
il y a 4 ans 7 mois #29224 par Laurent Dardenne
Jose Hidalgo écrit:

mais je n'arrive pas à reproduire le résultat final. :unsure:

Oui, je craignais un peu ce cas, car dans ton post d'origine certains export fonctionnent.
Jose Hidalgo écrit:

Si j'ai bien compris, tu as réussi à résoudre le pb des accents, mais pas celui des espaces.

Oui sur une Vm windows 10 (PS v5.1) avec la dernière version d'Evernote.
Jose Hidalgo écrit:

C'est déjà un bon début, non ?

Jsp :P
Au 'pire' il y a une solution de contournement qui est de tout sauvegarder dans un seul fichier XML.
Jose Hidalgo écrit:

il me manque juste le script résultant...

Celui que tu cites est similaire au mien.
Il faut juste tester avec une console en déclarant au début
[console]::OutputEncoding = [System.Text.Encoding]::UTF8
Jose Hidalgo écrit:

Dis-moi ce que tu en penses, moi je suis perdu pour le moment

Je n'ai pas essayé cette approche, mais celle-ci \\&quot;\&quot;$name\\&quot;\&quot; .
Le pb est qu'on reçoit un code de sortie différent de zéro signalant une erreur mais on ne sait pas à quoi elle correspond. Erreur d'analyse ? paramètre incorrecte ?
Dans certains cas, le soft renvoie un message mais pas tout le temps. C'est le syndrome de la gestion d'erreur à la \&quot;ça marche pas!\&quot;. Oui mais qu'est-ce qui ne marche pas ? Bah cherche...

Je ne vais pas passer plus de temps que ça sur ce pb, le mieux est de voir directement avec les développeurs du produit.
Propose leur une démo/scénario du pb dans un batch simple (cmd.exe) reproduisant le pb. Si tu passes par Powershell ils peuvent ne pas connaitre ou décider que c'est inhérent à ce soft ( et là on boucle :- ) )
Essaie avec la dernière version. Ainsi ils te diront si c'est un pb ou pas de leur soft ou de ta démarche.

Pour l'usage de trois guillemets, j'ai un doute sur l'analyse de la ligne de commande par le soft utilisé ici.
Si la présence d'un espace est considéré comme un séparateur on peut ajouter tout ce que l'on veut, ça ne changera pas la logique implémentée.
Je comptais tester avec un start-process, mais dans mon cas, comme ça fonctionne pas dans un cmd.exe, je ne suis donc pas allé + loin.

Tutoriels PowerShell

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

Plus d'informations
il y a 4 ans 7 mois #29231 par Jose Hidalgo
Juste pour info, j'ai finalement réussi à le faire marcher ! Ca a été long et cela a requis l'aide d'autres personnes sur Reddit. Mais j'ai finalement réussi !

Les itérations ne marchaient pas, il y avait toujours un problème quoi que l'on fasse. Donc j'ai fini par y renoncer et taper tous les noms de mes carnets de notes les uns aprèsl es autres (ça va, je n'en ai que 18).

Mais même comme ça, ça ne fonctionnait pas pour 6 d'entre eux, pour des raisons incompréhensibles (ex : un carnet de notes appelé \&quot;Brouillons.enex\&quot;). L'idée a été émise que peut-être que certains carnets de notes ont un espace invisible à la fin de leur nom, ou quelque chose comme ça. Bref, donc j'ai dû m'aider égalemente d'astérisques. Et là... ça a finalement fonctionné !!! :woohoo:

Alors voici l'idée du script final, si cela peut au moins en aider certains :

[code:1]$ENscript = \&quot;C:\Program Files (x86)\Evernote\Evernote\ENScript.exe\&quot;

$BackupLocation = \&quot;D:\Backups\Evernote\\&quot;
$date = get-date -uformat \&quot;%Y-%m-%d\&quot;

$BackupDir = $BackupLocation + \&quot;Backup \&quot; + $date
if ( ! (Test-Path $BackupDir) ) { md $BackupDir }

$B01 = $BackupDir + \&quot;\ABCDEFGH.enex\&quot; #First notebook name, it can include accents and spaces
$B02 = $BackupDir + \&quot;\BCDEFGHI.enex\&quot; #Second noteboook name
$B03 = $BackupDir + \&quot;\CDEFGHIJ.enex\&quot; #Third notebook name, and so on... you get the idea

&amp; $ENscript exportNotes /q \&quot;notebook: ABC*\&quot; /f $B01
&amp; $ENscript exportNotes /q \&quot;notebook: BCD*\&quot; /f $B02
&amp; $ENscript exportNotes /q \&quot;notebook: CDE*\&quot; /f $B03[/code:1]
L'essentiel c'est qu'au moins ça fonctionne ! Grâce à ça, mes 18 carnets de notes Evernote sont enfin sauvegardés, sans en oublier aucun !

Merci Laurent pour ton aide. :)

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

Plus d'informations
il y a 4 ans 7 mois #29232 par Laurent Dardenne
Jose Hidalgo écrit:

Merci Laurent pour ton aide. :)

De rien.
Merci d'avoir complété ce post :)

Tutoriels PowerShell

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

Plus d'informations
il y a 4 ans 7 mois #29233 par Jose Hidalgo
Correction : en fait ça n'a pas fonctionné ! :( Je me suis aperçu après coup qu'en réalité le bon contenu n'était pas sauvegardé dans les fichiers. Des personnes dans ce topic ( discussion.evernote.com/topic/53536-how-...te-using-powershell/ ) m'ont fait réaliser les erreurs du script... tout en m'expliquant qu'elles n'avaient elles-mêmes pas trouvé de moyen de les contourner !

Alors comment est-ce que cela s'est fini ? Et bien j'ai été obligé de réaliser un bon vieux script .bat, sans boucle ni rien, et... là ça a vraiment marché ! Le script figure dans le lien que je viens de donner.

Voilà tout ce que je peux dire. Il semble impossible à ce jour de parvenir à cet objectif avec POSH, et on ne sait pas pourquoi... Peut-être qu'un jour quelqu'un se repenchera sur cette question. En attendant, la solution .bat a au moins le mérite de fonctionner : je l'ai automatisée grâce au planificateur de tâches, et je peux à présent ENFIN passer à autre chose !

Mais un grand merci Laurent pour la qualité de ton écoute et ton aide, c'est essentiel parce que sans ça je n'aurais peut-être pas été jusqu'au bout de la démarche qui m'a finalement permis de trouver une solution, même si elle ne repose plus sur PowerShell. ;)

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

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