Question
Pb de caractères accentués avec Evernote
- Jose Hidalgo
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 4 ans 7 mois #29210
par Jose Hidalgo
Pb de caractères accentués avec Evernote a été créé par Jose Hidalgo
Bonjour à tous,
J'ai trouvé récemment un script PowerShell assez simple permettant de sauvegarder localement tous les carnets de notes Evernote. Le voici :
[code:1]# Simple Evernote backup PowerShell Script
#
# Backs up all notebooks in your account as .enex files, located in a designated
# directory. The backup directory name is generated by a base name with the
# current date appended.
#
# Todo:
# * Specify backup directory base via command-line
# * Backup single notebook specified via command-line
# * Restore notebook
# You may need to modify this according to the location of ENScript.exe
$ENscript = \"C:\Program Files (x86)\Evernote\Evernote\ENScript.exe\"
# Modify backup directory base as desired
$BackupLocation = \"D:\Backups\Evernote\\"
# Write out notebook names to a temporary file, one line at a time
$tempfile = \"notebooks.txt\"
& $ENscript listNotebooks >$tempfile
$reader = [System.IO.File]::OpenText($tempfile)
# Create a backup directory for this date
# Get current date and append it to the backup directory base
$date = get-date -uformat \"%Y-%m-%d\"
$BackupDir = $BackupLocation + \"Backup \" + $date
# Make the actual backup directory
if ( ! (Test-Path $BackupDir) )
{
md $BackupDir
}
# Process notebook names
try
{
for( ; ; )
{
# fetch a notebook name
$name = $reader.ReadLine()
if ($name -eq $null) { break }
# write out the backup file for this notebook: <notebook name>.enex
\"Backing up \" + $name + \"...\"
$BackupFileName = $BackupDir + \"\\" + $name + \".enex\"
& $ENscript exportNotes /q \"notebook:$name\" /f $BackupFileName
}
# Show your work
dir $BackupDir
}
finally
{
$reader.Close()
}
# delete the temp file
remove-item $tempfile[/code:1]
Malheureusement ce script ne fonctionne pas avec les carnets de notes ayant des caractères accentués dans leur titre. Donc si j'ai par exemple 50 carnets de notes mais que 17 ont des caractères accentués dans le nom, seulement 33 seront sauvegardés au final.
Le problème (ou ses effets) se voit dans la variable $name, puisque lors de l'exécution du script, dans la console on voit que cette variable s'affiche incorrectement. Du coup les fichiers correspondants ne peuvent pas être sauvegardés.
L'auteur du script ne sait pas comment le débugger. Pourriez-vous m'aider SVP ? Merci d'avance !
PS : j'ai PowerShell 5.1 sous Win 7 SP1 x64
Message édité par: Jose Hidalgo, à: 22/08/19 13:24
Message édité par: Jose Hidalgo, à: 22/08/19 13:26
Message édité par: Jose Hidalgo, à: 22/08/19 13:27<br><br>Message édité par: Jose Hidalgo, à: 22/08/19 13:31
J'ai trouvé récemment un script PowerShell assez simple permettant de sauvegarder localement tous les carnets de notes Evernote. Le voici :
[code:1]# Simple Evernote backup PowerShell Script
#
# Backs up all notebooks in your account as .enex files, located in a designated
# directory. The backup directory name is generated by a base name with the
# current date appended.
#
# Todo:
# * Specify backup directory base via command-line
# * Backup single notebook specified via command-line
# * Restore notebook
# You may need to modify this according to the location of ENScript.exe
$ENscript = \"C:\Program Files (x86)\Evernote\Evernote\ENScript.exe\"
# Modify backup directory base as desired
$BackupLocation = \"D:\Backups\Evernote\\"
# Write out notebook names to a temporary file, one line at a time
$tempfile = \"notebooks.txt\"
& $ENscript listNotebooks >$tempfile
$reader = [System.IO.File]::OpenText($tempfile)
# Create a backup directory for this date
# Get current date and append it to the backup directory base
$date = get-date -uformat \"%Y-%m-%d\"
$BackupDir = $BackupLocation + \"Backup \" + $date
# Make the actual backup directory
if ( ! (Test-Path $BackupDir) )
{
md $BackupDir
}
# Process notebook names
try
{
for( ; ; )
{
# fetch a notebook name
$name = $reader.ReadLine()
if ($name -eq $null) { break }
# write out the backup file for this notebook: <notebook name>.enex
\"Backing up \" + $name + \"...\"
$BackupFileName = $BackupDir + \"\\" + $name + \".enex\"
& $ENscript exportNotes /q \"notebook:$name\" /f $BackupFileName
}
# Show your work
dir $BackupDir
}
finally
{
$reader.Close()
}
# delete the temp file
remove-item $tempfile[/code:1]
Malheureusement ce script ne fonctionne pas avec les carnets de notes ayant des caractères accentués dans leur titre. Donc si j'ai par exemple 50 carnets de notes mais que 17 ont des caractères accentués dans le nom, seulement 33 seront sauvegardés au final.
Le problème (ou ses effets) se voit dans la variable $name, puisque lors de l'exécution du script, dans la console on voit que cette variable s'affiche incorrectement. Du coup les fichiers correspondants ne peuvent pas être sauvegardés.
L'auteur du script ne sait pas comment le débugger. Pourriez-vous m'aider SVP ? Merci d'avance !
PS : j'ai PowerShell 5.1 sous Win 7 SP1 x64
Message édité par: Jose Hidalgo, à: 22/08/19 13:24
Message édité par: Jose Hidalgo, à: 22/08/19 13:26
Message édité par: Jose Hidalgo, à: 22/08/19 13:27<br><br>Message édité par: Jose Hidalgo, à: 22/08/19 13:31
Connexion ou Créer un compte pour participer à la conversation.
- Quentin
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 47
- Remerciements reçus 0
il y a 4 ans 7 mois #29211
par Quentin
Réponse de Quentin sur le sujet Re:Pb de caractères accentués avec Evernote
Bonjour,
Serait-il possible de nous donner l'erreur que tu rencontres s'il y en a une ?
essaie de voir autour de cette ligne de commande
[code:1]
$file = [regex]::Escape(\"ton nom de fichier avec accents\"«»)
<ta ligne de commande qui utilise $file>
[/code:1]
Whitatrax
Serait-il possible de nous donner l'erreur que tu rencontres s'il y en a une ?
essaie de voir autour de cette ligne de commande
[code:1]
$file = [regex]::Escape(\"ton nom de fichier avec accents\"«»)
<ta ligne de commande qui utilise $file>
[/code:1]
Whitatrax
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 4 ans 7 mois #29212
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Pb de caractères accentués avec Evernote
Salut,
le programme ENScript.exe fonctionne si tu l'exécutes dans une console (CMD avec un nom de fichier accentué ?
Il se peut que tu ais un problème d'encodage/décodage. Essaie get-content au lieu de [System.IO.File]::OpenText.
le programme ENScript.exe fonctionne si tu l'exécutes dans une console (CMD avec un nom de fichier accentué ?
Il se peut que tu ais un problème d'encodage/décodage. Essaie get-content au lieu de [System.IO.File]::OpenText.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Jose Hidalgo
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 4 ans 7 mois #29213
par Jose Hidalgo
Réponse de Jose Hidalgo sur le sujet Re:Pb de caractères accentués avec Evernote
Merci pour vos réponses. Voici une capture d'écran de la console en cours de script :
Les caractères accentués sont bien remplacés par des symboles, mais aucune erreur n'apparaît. Le script essaye ensuite d'écrire ces fichiers avec des symboles dans leur nom, et j'imagine que windows doit refuser.
Je peux faire tous les tests que vous voudrez, mais je suis débutant en PowerShell, donc SVP indiquez-moi précisément quoi changer dans le script. Merci encore. <br><br>Message édité par: Jose Hidalgo, à: 22/08/19 15:48
Les caractères accentués sont bien remplacés par des symboles, mais aucune erreur n'apparaît. Le script essaye ensuite d'écrire ces fichiers avec des symboles dans leur nom, et j'imagine que windows doit refuser.
Je peux faire tous les tests que vous voudrez, mais je suis débutant en PowerShell, donc SVP indiquez-moi précisément quoi changer dans le script. Merci encore. <br><br>Message édité par: Jose Hidalgo, à: 22/08/19 15:48
Connexion ou Créer un compte pour participer à la conversation.
- Jose Hidalgo
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 4 ans 7 mois #29214
par Jose Hidalgo
Réponse de Jose Hidalgo sur le sujet Re:Pb de caractères accentués avec Evernote
J'ai inséré une pause juste après la ligne \"$reader = [System.IO.File]::OpenText($tempfile)\", ce qui m'a permis d'examiner le fichier temporaire notebooks.txt.
En effet ce fichier contient des noms déjà corrompus :
Facebook
Hi-Fi & Hi-Tech
Mod&#9500;¿les de notes
Carnet principal
D&#9500;®m&#9500;®nagement
Perso
Brouillons
Informatique
Appartements
Comp&#9500;®titions
Cuisine
DIVERS
Sant&#9500;®
Il faudrait donc changer l'encodage de façon à ce que le fichier temporaire soit créé avec les bons caractères.
Alternativement, je pourrais vivre aussi avec une commande supplémentaire qui remplacerait les caractères dans le fichier temporaire juste après sa création :
&#9500;¿ remplacé par è
&#9500;® remplacé par é
Etc.
Merci d'avance.
En effet ce fichier contient des noms déjà corrompus :
Hi-Fi & Hi-Tech
Mod&#9500;¿les de notes
Carnet principal
D&#9500;®m&#9500;®nagement
Perso
Brouillons
Informatique
Appartements
Comp&#9500;®titions
Cuisine
DIVERS
Sant&#9500;®
Il faudrait donc changer l'encodage de façon à ce que le fichier temporaire soit créé avec les bons caractères.
Alternativement, je pourrais vivre aussi avec une commande supplémentaire qui remplacerait les caractères dans le fichier temporaire juste après sa création :
&#9500;¿ remplacé par è
&#9500;® remplacé par é
Etc.
Merci d'avance.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 4 ans 7 mois #29215
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Pb de caractères accentués avec Evernote
Jose Hidalgo écrit:
Dans ton cas, ne pouvant tester, il reste à déterminer si c'est l'écrivain ou le lecteur qui utilise un encodage particulier :
[code:1]
#Ecrivain
& $ENscript listNotebooks >$tempfile
#lecteur
$reader = [System.IO.File]::OpenText($tempfile)
[/code:1]
Peut-être une piste en vérifiant l'encodage de $tempfile dans notepad. Si je me souviens bien, son menu 'Enregister sous' affiche par défaut l'encodage actuel du fichier.<br><br>Message édité par: Laurent Dardenne, à: 22/08/19 18:15
Je ne sais pas \"s'il faut\" ,mais de tester est un bon débutIl faudrait donc changer l'encodage de façon à ce que le fichier temporaire soit créé avec les bons caractères.
Dans ton cas, ne pouvant tester, il reste à déterminer si c'est l'écrivain ou le lecteur qui utilise un encodage particulier :
[code:1]
#Ecrivain
& $ENscript listNotebooks >$tempfile
#lecteur
$reader = [System.IO.File]::OpenText($tempfile)
[/code:1]
Peut-être une piste en vérifiant l'encodage de $tempfile dans notepad. Si je me souviens bien, son menu 'Enregister sous' affiche par défaut l'encodage actuel du fichier.<br><br>Message édité par: Laurent Dardenne, à: 22/08/19 18:15
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.092 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Pb de caractères accentués avec Evernote