Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

.bat file

23 réponses
Avatar
louis
bonjour
je ne suis aucunement connaisseur coté script etc
mais je suis certain qu'ici quelqu'un pourra m'aider

présentement j'ai un fichier .bat qui me fait une sauvegarde du régistre
quand je le désire voici la commande que j'ai
REGEDIT /backup c:\Sauvegarde.reg

mais je voudrais qu'au lieu de sauvegarde .reg il me le sauve à la date
et heure de l'exécution du bat soit
REGEDIT /backup c:\date heure .reg

quel serait la commande à inscrire ?

merci d'avance de votre aide

10 réponses

1 2 3
Avatar
louis
meme si j'ajoute la ligne del Sauvegarde.reg ça ne fonctionne pas
le fichier est effacé oui mais le fichier avec la date etc ne se forme
pas et
quand je vérifies pas a pas le fichier sauvregistre.bat avec powerbatch
il me dit le fichier spécifié est introuvable
à la ligne copy %source% %~dp1"%cible%"
pourtant il est la dans la meme filiere
il y a quelque chose qui accroche mais je ne trouve pas quoi


"JF" a écrit dans le message de news:

*Bonjour louis* !
<news:

j'ai installer ERUNT , ça fonctionne bien
et NTREGOPT.EXE qui devrai si j'ai bien compris optimiser mon
régistre et
qui semble le faire quand je l'exécutes


Je t'adresse toutes mes félicitations. Il n'y a plus qu'à noter sur un
postit comment on redémarre en cas de crash du Registre avec la
commande BATCH ERDNT.CON depuis la CDR.


quand j'exécutes le premier sauvregistre.bat
il me fait un fichier Sauvegarde.reg sans le dater comme dans vos
exemple



Il te suffit d'ajouter une commande à la fin du second batch :
del Sauvegarde.reg
.. ce qui supprimera ce fichier inutile.

Précision :
la commande
@goto eof:
est une astuce pour que ce qui suit cette commande ne soit pas
exécuté. Tu peux conserver, mais la commande del Sauvegarde.reg doit
être bien sûr placée avant.
goto eof: veut dire "va à la fin du fichier" (End Of File), autrement
dit, "ne fait plus rien".
@ ne sert qu'à masquer une commande à l'exécution.


dois je modifier certaines choses dans le fichier dateurfichier.bat ?
comme source et cible si oui j'y inscrit quoi ?


Ce sont des variables.
Il n'y a rien à modifier à ce niveau sans comprendre le
fonctionnement.



(m'y connaissant pas trop je n'ose pas m'aventurer dans des fichiers
exécutables qui touchent le régistre sans approbation de connaisseur)


Je t'encourage à faire fonctionner ces batchs avec d'autres choses
qu'une sauvegarde du registre. Cela sera plus rapide, et tu pourras
faire des tests et comprendre petit à petit comment cela fonctionne.

dateurfichier.bat changera le nom de n'importe quel fichier qui sera
laché sur lui à la souris (ou en paramètre).
Fais des tests.

--
Salutations, Jean-François
Index de la FAQ XP de Panthère Noire : www.d2i.ch/pn/az
Un problème difficile à décrire ? http://fspsa.free.fr/copiecran.htm
Info:
www.libellules.ch/dotclear?2008/02/01/2406-la-config-securite-fevrier-2008





Avatar
JF
*Bonjour louis* !
<news:#

meme si j'ajoute la ligne del Sauvegarde.reg ça ne fonctionne pas
le fichier est effacé oui mais le fichier avec la date etc ne se forme pas et
quand je vérifies pas a pas le fichier sauvregistre.bat avec powerbatch il
me dit le fichier spécifié est introuvable
à la ligne copy %source% %~dp1"%cible%"
pourtant il est la dans la meme filiere
il y a quelque chose qui accroche mais je ne trouve pas quoi


Bravo, tu as mis le doigt dessus.
Il y a une erreur.

Pour commencer, je te donne un truc :
ajouter une commande PAUSE à la fin d'un Batch permet d'obtenir que la
fenêtre ne se ferme pas, on peut ainsi lire les messages d'erreur.

L'autre technique consistant à ouvrir une Console CMD
(Démarrer>Exécuter>cmd) et à y exécuter le batch en y tapant son nom si
on a su naviguer jusqu'à son dossier avec la commande CD, ou en
utilisant la souris pour lacher le batch dans la Console.

Les guillemets :
On met des guillemets quand le chemin risque de comporter des espaces.
Il se trouve que si j'ai bien pensé à en mettre, il y en a un que j'ai
mal placé. L'erreur n'avait pas eu de répercussion jusqu'à ce jour
parce que j'ai la malheureuse habitude d'éviter les espaces dans les
noms de mes dossiers de travail. Je te prie donc d'excuser mon
incompétence.

Correction :
copy %source% %~dp1"%cible%" MAUVAIS
copy %source% "%~dp1%cible%" BON
Le guillemet a été déplacé pour inclure la variable %~dp1 qui contient
la lettre du lecteur (~d) et le chemin (~p) du fichier transmis en
argument (%1). ~d et ~p sont des "modificateurs de variables.

J'ai mis le del à la fin du premier batch.
Le fichier registre.reg est donc détruit une fois la copie terminée.

============= Récapitulation
=============
----------------
sauvregistre.bat
----------------
REGEDIT /backup Sauvegarde.reg
call dateurfichier.bat Sauvegarde.reg
del Sauvegarde.reg

-----------------
dateurfichier.bat
-----------------
set D=%DATE:/=%
set D=%D:~4,4%.%D:~2,2%.%D:~0,2%
set T=%TIME::=%
set T=%T:~0,6%
set T=%T:~0,2%H%T:~2,2%m%T:~4,4%s
set NomDateHeure=%D%_%T%
set nom=%~n1%
set extension=%~x1%
set source=%1
set cible=%nom%%NomDateheure%%extension%
copy %source% "%~dp1%cible%"



======= Résultat
=======
dateurfichier.bat
sauvregistre.bat
Sauvegarde2008.03.31_ 6H39m11s.reg
Sauvegarde2008.03.31_ 6H40m04s.reg
Sauvegarde2008.04.01_ 3H56m39s.reg
Sauvegarde2008.04.01_ 3H57m52s.reg

--
Salutations, Jean-François
Index de la FAQ XP de Panthère Noire : www.d2i.ch/pn/az
Un problème difficile à décrire ? http://fspsa.free.fr/copiecran.htm
Démo anti-parasites : http://forum.malekal.com/viewtopic.php?t€46

Avatar
JF
*Bonjour MCI (ex do ré Mi chel la si do) [MVP]* !
<news:

(attention aux petites erreurs comme %TEMP%TMP.BAT au lieu de
%TEMP%TMP.BAT)


Au fait, j'ai fini par corriger le schmilblick.


C'est donc ainsi que ce mot s'écrit ? :)


Explication de l'origine du problème :
les batch exemples étaient bons,
mais le copier/coller avait supprimé les ""
pour les remplacer par un espace.


Je me doutais bien d'un schmilblick de ce genre.

Merci de m'avoir rappelé le problème.


Je n'aurai plus honte de proposer ton superbe tuto.
Et je remets le lien sur mon site :D
Merci Michel !

--

Salutations, Jean-François.


Avatar
Gilles LAURENT [MVP]
"louis" a écrit dans le message de
news:
| bonjour

Bonjour,

| présentement j'ai un fichier .bat qui me fait une sauvegarde du
| régistre quand je le désire voici la commande que j'ai
| REGEDIT /backup c:Sauvegarde.reg
|
| mais je voudrais qu'au lieu de sauvegarde .reg il me le sauve à la
| date et heure de l'exécution du bat soit
| REGEDIT /backup c:date heure .reg

Une solution alternative :

--- Coupez ici : regback.cmd ---
@echo off
%temp%dt.vbs echo Set oRe=New RegExp
%temp%dt.vbs echo oRe.Pattern="[/:]":oRe.Global=True
%temp%dt.vbs echo sDTÚte ^& "_" ^& Time
%temp%dt.vbs echo WScript.Echo "set dt=" ^& oRe.Replace(sDT,"")
cscript//nologo %temp%dt.vbs>%temp%dt.cmd & call %temp%dt.cmd


del %temp%dt.vbs,%temp%dt.cmd
regedit /backup C:%dt%.reg
--- Coupez ici : regback.cmd ---

Le fichier du registre sera sauvegardé sous la forme :
C:1042008_123958.reg

Note: Pour sauvegarder l'ensemble du registre, le script devra
s'exécuter sous l'autorité LocalSystem. Une solution pour cela est de
planifier le script avec la command AT

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr


Avatar
louis
superbe M. Gilles
tout fonctionne du premier coup
juste une petite remarque sur le format de la date qui est sauvé comme
suit C:2008-04-01_084641.reg
et non comme vous le mentionniez dans votre post C:1042008_123958.reg
mais pour moi ça n'a aucune espèce d'importance les détails date et
heure sont la
et c'est exactement ce que je voulait
la composition de votre script est pour moi l'apprenti presque du
chinois
mais je m'instruit grandement ici avec les infos et références reçu
gros merci à tous ceux qui m'ont aidé

"Gilles LAURENT [MVP]" a écrit dans le message de news:
e1EGFX%
"louis" a écrit dans le message de
news:
| bonjour

Bonjour,

| présentement j'ai un fichier .bat qui me fait une sauvegarde du
| régistre quand je le désire voici la commande que j'ai
| REGEDIT /backup c:Sauvegarde.reg
|
| mais je voudrais qu'au lieu de sauvegarde .reg il me le sauve à la
| date et heure de l'exécution du bat soit
| REGEDIT /backup c:date heure .reg

Une solution alternative :

--- Coupez ici : regback.cmd ---
@echo off
%temp%dt.vbs echo Set oRe=New RegExp
%temp%dt.vbs echo oRe.Pattern="[/:]":oRe.Global=True
%temp%dt.vbs echo sDTÚte ^& "_" ^& Time
%temp%dt.vbs echo WScript.Echo "set dt=" ^& oRe.Replace(sDT,"")
cscript//nologo %temp%dt.vbs>%temp%dt.cmd & call %temp%dt.cmd


del %temp%dt.vbs,%temp%dt.cmd
regedit /backup C:%dt%.reg
--- Coupez ici : regback.cmd ---

Le fichier du registre sera sauvegardé sous la forme :
C:1042008_123958.reg

Note: Pour sauvegarder l'ensemble du registre, le script devra
s'exécuter sous l'autorité LocalSystem. Une solution pour cela est de
planifier le script avec la command AT

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr






Avatar
Gilles LAURENT [MVP]
"louis" a écrit dans le message de
news:uQRvYm$
| superbe M. Gilles

Merci :-)

| tout fonctionne du premier coup
| juste une petite remarque sur le format de la date qui est sauvé comme
| suit C:2008-04-01_084641.reg
| et non comme vous le mentionniez dans votre post
| C:1042008_123958.reg

Dans le respect des options régionales et linguistiques.
Je suppose que votre système est configuré en Français (Canada) :
AAAA-MM-JJ

Si toutefois vous souhaitez supprimer les "-" de la date :
oRe.Pattern="[/:-]"

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
louis
quand je clique sur l'heure dans la barre de tache en bas à droite
on me donne 1er avril 2008 comme votre exemple et
en exécutant le batch j'obtiens C:2008-04-01_084641.reg soit l'inverse
le pourquoi je ne sais pas trop
moi je suis habitué de lire la date 01-04-08
mais le système a de petits caprices que je ne comprends pas toujours
( lire pas souvent ) ;-))

et tant qu'a vous avoir disponible la petite note laissé précédemment
"Note: Pour sauvegarder l'ensemble du registre, le script devra
s'exécuter sous l'autorité LocalSystem. Une solution pour cela est de
planifier le script avec la command AT"
je ne la comprend pas pour dire le vrai et
si je n'abuses pas de votre patience et si ce n'est pas trop complexe
une petite explication serait beaucoup appréciée.
merci


"Gilles LAURENT [MVP]" a écrit dans le message de news:

"louis" a écrit dans le message de
news:uQRvYm$
| superbe M. Gilles

Merci :-)

| tout fonctionne du premier coup
| juste une petite remarque sur le format de la date qui est sauvé
comme
| suit C:2008-04-01_084641.reg
| et non comme vous le mentionniez dans votre post
| C:1042008_123958.reg

Dans le respect des options régionales et linguistiques.
Je suppose que votre système est configuré en Français (Canada) :
AAAA-MM-JJ

Si toutefois vous souhaitez supprimer les "-" de la date :
oRe.Pattern="[/:-]"

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr




Avatar
louis
magnifique JF
je me doutais que c'était un détail qui accrochait
mais ça me gènait un peu de te demander de vérifier les lignes du batch
comme je te sens perpicace tu as trouvé le bobo comme on dit
et la tout fonctionne comme ça devait
je suis vraiement gaté d'avoir ici des spécialistes qui me donnent plein
d'infos
et qui se sont donné la peine de monter ces batchs
merci à tous
P.S. a voir les résultats obtenus je vais sans doute revenir vous voir
pour vous demander d'autre conseils :-)) bravo les gars

"JF" a écrit dans le message de news:
%
*Bonjour louis* !
<news:#

meme si j'ajoute la ligne del Sauvegarde.reg ça ne fonctionne pas
le fichier est effacé oui mais le fichier avec la date etc ne se
forme pas et
quand je vérifies pas a pas le fichier sauvregistre.bat avec
powerbatch il me dit le fichier spécifié est introuvable
à la ligne copy %source% %~dp1"%cible%"
pourtant il est la dans la meme filiere
il y a quelque chose qui accroche mais je ne trouve pas quoi


Bravo, tu as mis le doigt dessus.
Il y a une erreur.

Pour commencer, je te donne un truc :
ajouter une commande PAUSE à la fin d'un Batch permet d'obtenir que la
fenêtre ne se ferme pas, on peut ainsi lire les messages d'erreur.

L'autre technique consistant à ouvrir une Console CMD
(Démarrer>Exécuter>cmd) et à y exécuter le batch en y tapant son nom
si on a su naviguer jusqu'à son dossier avec la commande CD, ou en
utilisant la souris pour lacher le batch dans la Console.

Les guillemets :
On met des guillemets quand le chemin risque de comporter des espaces.
Il se trouve que si j'ai bien pensé à en mettre, il y en a un que j'ai
mal placé. L'erreur n'avait pas eu de répercussion jusqu'à ce jour
parce que j'ai la malheureuse habitude d'éviter les espaces dans les
noms de mes dossiers de travail. Je te prie donc d'excuser mon
incompétence.

Correction :
copy %source% %~dp1"%cible%" MAUVAIS
copy %source% "%~dp1%cible%" BON
Le guillemet a été déplacé pour inclure la variable %~dp1 qui contient
la lettre du lecteur (~d) et le chemin (~p) du fichier transmis en
argument (%1). ~d et ~p sont des "modificateurs de variables.

J'ai mis le del à la fin du premier batch.
Le fichier registre.reg est donc détruit une fois la copie terminée.

============= > Récapitulation
============= >
----------------
sauvregistre.bat
----------------
REGEDIT /backup Sauvegarde.reg
call dateurfichier.bat Sauvegarde.reg
del Sauvegarde.reg

-----------------
dateurfichier.bat
-----------------
set D=%DATE:/=%
set D=%D:~4,4%.%D:~2,2%.%D:~0,2%
set T=%TIME::=%
set T=%T:~0,6%
set T=%T:~0,2%H%T:~2,2%m%T:~4,4%s
set NomDateHeure=%D%_%T%
set nom=%~n1%
set extension=%~x1%
set source=%1
set cible=%nom%%NomDateheure%%extension%
copy %source% "%~dp1%cible%"



======= > Résultat
======= >
dateurfichier.bat
sauvregistre.bat
Sauvegarde2008.03.31_ 6H39m11s.reg
Sauvegarde2008.03.31_ 6H40m04s.reg
Sauvegarde2008.04.01_ 3H56m39s.reg
Sauvegarde2008.04.01_ 3H57m52s.reg

--
Salutations, Jean-François
Index de la FAQ XP de Panthère Noire : www.d2i.ch/pn/az
Un problème difficile à décrire ? http://fspsa.free.fr/copiecran.htm
Démo anti-parasites : http://forum.malekal.com/viewtopic.php?t€46





Avatar
louis
suite aux infos recueillis ici j'ai chercher sur le net pour la commande
at
et en résumé ça dirait à l'ordi de faire un job à tel moment si j'ai
bien compris
mais de la à me monter un batch pour le faire 1 fois / jour je ne suis
pas rendu la ;-))

"Gilles LAURENT [MVP]" a écrit dans le message de news:

"louis" a écrit dans le message de
news:uQRvYm$
| superbe M. Gilles

Merci :-)

| tout fonctionne du premier coup
| juste une petite remarque sur le format de la date qui est sauvé
comme
| suit C:2008-04-01_084641.reg
| et non comme vous le mentionniez dans votre post
| C:1042008_123958.reg

Dans le respect des options régionales et linguistiques.
Je suppose que votre système est configuré en Français (Canada) :
AAAA-MM-JJ

Si toutefois vous souhaitez supprimer les "-" de la date :
oRe.Pattern="[/:-]"

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr




Avatar
Gilles LAURENT [MVP]
"louis" a écrit dans le message de
news:
| quand je clique sur l'heure dans la barre de tache en bas à droite
| on me donne 1er avril 2008 comme votre exemple et
| en exécutant le batch j'obtiens C:2008-04-01_084641.reg soit
| l'inverse le pourquoi je ne sais pas trop
| moi je suis habitué de lire la date 01-04-08
| mais le système a de petits caprices que je ne comprends pas toujours
| ( lire pas souvent ) ;-))

Démarrer
Paramètres
Panneau de configuration
Options régionales et linguistiques
Onglet: Options régionales
Champ: Date courte <- Format utilisé par le script
Champ: Date longue <- Format utilisé par l'horloge

| et tant qu'a vous avoir disponible la petite note laissé précédemment
| "Note: Pour sauvegarder l'ensemble du registre, le script devra
| s'exécuter sous l'autorité LocalSystem. Une solution pour cela est de
| planifier le script avec la command AT"
| je ne la comprend pas pour dire le vrai et
| si je n'abuses pas de votre patience et si ce n'est pas trop complexe
| une petite explication serait beaucoup appréciée.

Quelques branches critiques du registre NT sont protégées. Même le
compte Administrateur local n'a pas le droit de lecture sans activation
des privilèges nécessaires. Ceci est facilement réalisable en code Win32
(ce que fait ERUNT) mais pas en scripting. C'est pour cela que je vous
suggère d'exécuter ce script sous AT (qui lui s'exécute sous l'autorité
LocalSystem)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
1 2 3