Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[R] Générer un fichier texte avec le bon encodage
Auteur Message
Répondre en citant
Message [R] Générer un fichier texte avec le bon encodage 
Bonsoir,

Je me suis fait un script pour récupérer quelques infos utiles, avant par exemple, de formater et réinstaller un système.

Voilà la chose :

Code:
@echo off & color 0A

cd %USERPROFILE%\Desktop || goto :eof
if not exist temp0123456 (mkdir temp0123456 && cd temp0123456)
set rapport=%USERPROFILE%\Desktop\%date:~6,4%%date:~3,2%%date:~0,2%_rapport_%USERNAME%.txt
if exist %rapport% del /F %rapport%

rem
rem
rem

chcp 1252 > nul

call :deco
echo        Rapport généré le %DATE% à %time:~0,2%:%time:~3,2%:%time:~6,2% sur la machine "%COMPUTERNAME%" >> %rapport%
call :deco

rem
rem
rem

echo. & echo 1/7 - Acquisition des informations systeme
systeminfo /FO list | find /v "KB" >> %rapport%

FOR /F "tokens=1,2,* delims=." %%A IN ('REG.EXE QUERY "HKLM\Software\Microsoft\Internet Explorer" /V "Version" ^| FIND "REG_SZ"') DO (SET IEVer=%%B)
echo Version d'Internet Explorer : %IEVer% >> %rapport%
echo. >> %rapport%
echo Boot Mode: >> %rapport%
wmic COMPUTERSYSTEM GET BootupState | find "boot" >> %rapport%
echo. >> %rapport%
echo Antivirus: >> %rapport%
wmic /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName >> %rapport% 2>&1
call :deco

rem
rem
rem

echo. & echo 2/7 - Acquisition des comptes utilisateurs
wmic /output:rapport_comptes.txt useraccount get name, sid, localaccount, status >> %rapport%
type rapport_comptes.txt >> %rapport%
call :deco

rem
rem
rem

echo. & echo 3/7 - Acquisition de la cle de produit Windows
call :productkey
echo Windows clé de produit (license) : >> %rapport%
type rapport_license.txt >> %rapport%
call :deco

rem
rem
rem

echo. & echo 4/7 - Acquisition de la liste des disques et lecteurs
wmic /output:rapport_disques.txt logicaldisk get caption,description,volumename,filesystem,size,volumeserialnumber
type rapport_disques.txt >> %rapport%
call :deco

rem
rem
rem

echo. & echo 5/7 - Acquisition de la liste des programmes
echo Liste des programmes installés : >> %rapport%
echo. >> %rapport%
wmic /output:rapport_programmes.txt product get name,version
type rapport_programmes.txt | find /V "Name                                                                             Version" | sort >> %rapport%
call :deco

rem
rem
rem

echo Contenu du dossier "Démarrage" : >> %rapport%
echo. >> %rapport%
dir /a-d /b "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup" | findstr /V "desktop.ini" >> rapport_demarrage1.txt
dir /a-d /b "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup" | findstr /V "desktop.ini" >> rapport_demarrage1.txt
for /f "tokens=1,* delims=^=" %%C in ('wmic STARTUP get /format:list ^| find "Command"') do (echo %%D >> rapport_demarrage2.txt)
type rapport_demarrage1.txt | sort >> %rapport%
call :deco

echo Liste des logiciels lancés au démarrage : >> %rapport%
echo. >> %rapport%
type rapport_demarrage2.txt >> %rapport%
call :deco

rem
rem
rem
 
echo. & echo 6/7 - Acquisition de la liste des services
echo Liste des services : >> %rapport%
echo. >> %rapport%
sc query type= service | findstr "DISPLAY_NAME" | sort >> rapport_services.txt
for /f "tokens=1,* delims= " %%B in (rapport_services.txt) do (echo %%C >> rapport_services2.txt)
type rapport_services2.txt >> %rapport%
call :deco

rem
rem
rem

echo Liste des tâches planifiées : >> %rapport%
echo. >> %rapport%
for /f "tokens=1,2,3,4,* delims= " %%A in ('schtasks /query /fo LIST ^| find "tâche" ^| find /V "\Microsoft\Windows" ^| find /V "actuellement"') do (echo %%E >> %rapport%)
call :deco

rem
rem
rem

echo. & echo 7/7 - Acquisition du fichier hosts
echo Contenu de %Windir%\System32\drivers\etc\hosts : >> %rapport%
echo. >> %rapport%
type %Windir%\System32\drivers\etc\hosts >> %rapport%

rem
rem
rem

cd %USERPROFILE%\Desktop
rmdir /S /Q temp0123456
notepad %rapport%

exit

rem
rem
rem

:deco

echo. >> %rapport%

echo ############################################################################################################ >> %rapport%

echo. >> %rapport%

goto :eof

rem
rem
rem

:productkey

> ProductKey.vbs ECHO Set WshShell = CreateObject("WScript.Shell")
>>ProductKey.vbs ECHO wscript.echo ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId"))
>>ProductKey.vbs ECHO.
>>ProductKey.vbs ECHO Function ConvertToKey(Key)
>>ProductKey.vbs ECHO Const KeyOffset = 52
>>ProductKey.vbs ECHO i = 28
>>ProductKey.vbs ECHO Chars = "BCDFGHJKMPQRTVWXY2346789"
>>ProductKey.vbs ECHO Do
>>ProductKey.vbs ECHO Cur = 0
>>ProductKey.vbs ECHO x = 14
>>ProductKey.vbs ECHO Do
>>ProductKey.vbs ECHO Cur = Cur * 256
>>ProductKey.vbs ECHO Cur = Key(x + KeyOffset) + Cur
>>ProductKey.vbs ECHO Key(x + KeyOffset) = (Cur \ 24) And 255
>>ProductKey.vbs ECHO Cur = Cur Mod 24
>>ProductKey.vbs ECHO x = x -1
>>ProductKey.vbs ECHO Loop While x ^>= 0
>>ProductKey.vbs ECHO i = i -1
>>ProductKey.vbs ECHO KeyOutput = Mid(Chars, Cur + 1, 1) ^& KeyOutput
>>ProductKey.vbs ECHO If (((29 - i) Mod 6) = 0) And (i ^<^ -1) Then
>>ProductKey.vbs ECHO i = i -1
>>ProductKey.vbs ECHO KeyOutput = "-" ^& KeyOutput
>>ProductKey.vbs ECHO End If
>>ProductKey.vbs ECHO Loop While i ^>= 0
>>ProductKey.vbs ECHO ConvertToKey = KeyOutput
>>ProductKey.vbs ECHO End Function

cscript .\ProductKey.vbs | find /v "Microsoft" > rapport_license.txt

goto :eof


Ca marche très bien à un détail près : dans le rapport final, les lettres accentuées sont mal gérées pour le listing des services.

J'ai trouvé une astuce pour convertir un fichier texte ANSI en UNICODE :
Code:
CMD /U /C TYPE ascii.txt > unicode.txt


Malheureusement cette astuce engendre d'autres problèmes.

Est-ce que quelqu'un aurait une idée pour gérer correctement les accents ?

Merci d'avance pour votre aide.



Dernière édition par barnabe0057 le Sam 1 Avr 2017 - 19:15; édité 1 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [R] Générer un fichier texte avec le bon encodage 
Bonjour,
à vrai dire,je n'ai jamais rencontré ce genre de situation (ce n'est pas mon habitude de faire des sauvegardes avec accents vu que mes programmes sont généralement en anglais
après quelques recherches internet j'ai trouvé ça :
Code:
chcp 65001

donc change le code CHCP 1252 par 65001 et dis mois ce que ça donne Wink




______________________________________________________


cliquer sur un des liens n'est pas dangereux
Ancien site,Nouveau site
Mon site de scan
Vous êtes le
visiteur
Chaine Youtube:
Visiter le site web du posteur Skype
Répondre en citant
Message Générer un fichier texte avec le bon encodage 
Merci pour ta réponse, malheureusement quand je remplace chcp 1252 par chcp 65001 mon script reste bloqué à l'étape 1.

En fait c'est juste la sortie de cette commande qui m'embête :
Code:
sc query type= service | findstr "DISPLAY_NAME" | sort >> rapport_services.txt


J'arrive au bon résultat si je rajoute cette commande :
Code:
cmd /u /c type rapport_services.txt > rapport_services2.txt


Seulement ensuite ça me fait n'importe quoi quand je rajoute cette commande :
Code:
type rapport_services2.txt >> %rapport%


Je crois que je vais en rester là, tant pis pour les accents.



Répondre en citant
Message [R] Générer un fichier texte avec le bon encodage 
Donc sujet résolu on on le laisse comme ça?




______________________________________________________


cliquer sur un des liens n'est pas dangereux
Ancien site,Nouveau site
Mon site de scan
Vous êtes le
visiteur
Chaine Youtube:
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Générer un fichier texte avec le bon encodage 
Oui on laisse comme ça, je passe en résolu.



Répondre en citant
Message [R] Générer un fichier texte avec le bon encodage 
Salut Wink
Inspirez-vous de ce code pour qu'il vous donne plus d'idées
Moi ce que je fais c'est de créer tout le rapport dans fichier temporaire %TmpLog% puis je passe cette commande à la fin pour afficher bien les caractères accentués
Code:
CMD /U /C Type "%TmpLog%" > "%Log%"





______________________________________________________
Mes Contributions en Téléchargement
Répondre en citant
Message [R] Générer un fichier texte avec le bon encodage 
Merci pour le script, je vais examiner ça, bonne journée.



Répondre en citant
Message [R] Générer un fichier texte avec le bon encodage 
salut

tu peux utiliser "iconv", ça permet de jongler entre pratiquement tous les encodages connus.



Message [R] Générer un fichier texte avec le bon encodage 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch