17 réponses
J'ai carrément plus simple, fonctionne impec sous Windows XP SP2
set jour=%date:~0,2%
set mois=%date:~3,2%
set annee=%date:~6,4%
Ma variable jour prendra les 2 caractères à partir du premier
Ma variable mois prendra les 2 caractères à partir du troisième
Ma variable annee prendra les 4 caractères à partir du sixième
Ce qui correspond bien à l'affichage de ma date qui me renvoi un résultat comme suit:
18/07/2007
Simple et pratique, tout comme jaime.
PS: Je sais que le message initial date un peu mais pour les personnes qui cherchent encore, ça peut être utile.
set jour=%date:~0,2%
set mois=%date:~3,2%
set annee=%date:~6,4%
Ma variable jour prendra les 2 caractères à partir du premier
Ma variable mois prendra les 2 caractères à partir du troisième
Ma variable annee prendra les 4 caractères à partir du sixième
Ce qui correspond bien à l'affichage de ma date qui me renvoi un résultat comme suit:
18/07/2007
Simple et pratique, tout comme jaime.
PS: Je sais que le message initial date un peu mais pour les personnes qui cherchent encore, ça peut être utile.
Ch@oS
Messages postés
41
Date d'inscription
dimanche 4 décembre 2005
Statut
Membre
Dernière intervention
25 mars 2006
35
21 janv. 2006 à 08:13
21 janv. 2006 à 08:13
@echo off
if "%1"=="" goto passource
if not defined date goto pasdate
rem *****************************************************
rem La date stockee dans %date% contient le signe "/"
rem qu`on ne peut utiliser pour renommer les fichier car
rem c`est un caractere special de Window$. On le remplace
rem donc par "_"
rem *****************************************************
for /f "tokens=1-3 delims=/" %%a in ("%date%") do set newdate=%%a_%%b_%%c_
rem On renomme le fichier...
ren "%1" "%1_%newdate%.%2"
Et voilà...
if "%1"=="" goto passource
if not defined date goto pasdate
rem *****************************************************
rem La date stockee dans %date% contient le signe "/"
rem qu`on ne peut utiliser pour renommer les fichier car
rem c`est un caractere special de Window$. On le remplace
rem donc par "_"
rem *****************************************************
for /f "tokens=1-3 delims=/" %%a in ("%date%") do set newdate=%%a_%%b_%%c_
rem On renomme le fichier...
ren "%1" "%1_%newdate%.%2"
Et voilà...
jivef
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
306
Modifié par jivef le 18/05/2011 à 20:46
Modifié par jivef le 18/05/2011 à 20:46
Bonjour,
Les solutions proposées sont plutôt sympa.
Personnellement, j'utilise plutôt un système GNU/Linux, mais malheureusement, une bonne partie de mes clients sont trop prisonniers de windows à cause de leurs applications.
Ceci étant dit, concernant la récupération de la date, à mon sens, le mieux est d'utiliser un format de type ISO 8601 car des fichiers nommés avec la date dans ce format seront toujours classés dans l'ordre et plus faciles à trouver.
Ils seront à la fois dans l'ordre numérique et dans l'ordre chronologique, sans effort.
A cet effet, j'ai fait un petit bout de batch que je réutilise dès que j'en ai besoin et qui me permet de créer une variable date au format indiqué.
A partir de cette variable, que j'appelle GDH (pour Groupe Date-Heure) je peux écrire dans un fichier, renommer un fichier, créer un répertoire, etc...
A toutes fins utiles, pour ceux qui croient encore que la syntaxe UNIX est à rallonge, voici l'exemple du contraire.
Syntaxe Unix ou GNU/Linux
Pour vérifier le résultat :
Avec UNIX il m'a fallut une seule ligne...
Avec dos, je vous laisse regarder le travail.
Ceci étant dit, j'apprécie la solution de sindromix qui me semble particulièrement élégante et qui pourrait améliorer un peu la mienne.
20110510_170514.log
(fichier sauve.log renommé).
On peut aussi écrire dans un fichier pour avoir la date à l'heure précise à laquelle un évènement s'est produit sur le système.
Bien cordialement.
Jonas V.F.
Les solutions proposées sont plutôt sympa.
Personnellement, j'utilise plutôt un système GNU/Linux, mais malheureusement, une bonne partie de mes clients sont trop prisonniers de windows à cause de leurs applications.
Ceci étant dit, concernant la récupération de la date, à mon sens, le mieux est d'utiliser un format de type ISO 8601 car des fichiers nommés avec la date dans ce format seront toujours classés dans l'ordre et plus faciles à trouver.
Ils seront à la fois dans l'ordre numérique et dans l'ordre chronologique, sans effort.
A cet effet, j'ai fait un petit bout de batch que je réutilise dès que j'en ai besoin et qui me permet de créer une variable date au format indiqué.
A partir de cette variable, que j'appelle GDH (pour Groupe Date-Heure) je peux écrire dans un fichier, renommer un fichier, créer un répertoire, etc...
A toutes fins utiles, pour ceux qui croient encore que la syntaxe UNIX est à rallonge, voici l'exemple du contraire.
Syntaxe Unix ou GNU/Linux
$ gdh='date +%Y%m%d_%I%M%S'
Pour vérifier le résultat :
$ echo $gdh 20110518_083849 $
Avec UNIX il m'a fallut une seule ligne...
Avec dos, je vous laisse regarder le travail.
Ceci étant dit, j'apprécie la solution de sindromix qui me semble particulièrement élégante et qui pourrait améliorer un peu la mienne.
echo ce batch donne un groupe date heure (GDH) sous la forme AAAAMMJJHHMMss (Norme ISO 8601 sans séparateurs.) echo Annee mois jour minutes secondes. echo vous pouvez vous servir de ce batch comme d'un élément d'un autre. echo Cette brique peut servir à renommer un fichier en indiquant la date de l'opération. echo exemple "sauvegarde quotidienne" rem boucle for de creation de variable pour utilisation d'un groupe date-heure (GDH) for /F "delims=/ tokens=1,2,3" %%1 in ('echo %date%') do set VARDATE=%%3%%2%%1 rem Récuperation date au format ISO 8601:2004 (YYYYMMDD) for /F "delims=: tokens=1,2,3" %%1 in ('echo %time%') do set VARTIME=%%1%%2%%3 for /f %%1 in ('echo %VARTIME%') do SET VARTIME=%%1 rem Récuperation heure au format HHMMSS rem Creation GDH (Groupe Date Heure) SET GDH=%VARDATE%_%VARTIME% echo %GDH% rem creation d'un fichier journal date ISO8601 echo %GDH% > %GDH%.log rem fin horodatage echo utiliser la variable GDH pour renommer un fichier. Echo creation du fichier sauve.log echo . sauve.log > sauve.log exemple ci après renommage ren sauve.log %GDH%.log rem n'hesitez pas a mettre le fichier ou le dossier a renommer dans une variable, c'est plus propre.Exemple de fichier renommé avec cette fonction :
20110510_170514.log
(fichier sauve.log renommé).
On peut aussi écrire dans un fichier pour avoir la date à l'heure précise à laquelle un évènement s'est produit sur le système.
Bien cordialement.
Jonas V.F.
Mellah2
Messages postés
2
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
5 août 2006
3
5 août 2006 à 09:36
5 août 2006 à 09:36
bonjour,
Trouve ci-après un autre exemple.
fichier: test.bat
for /F "tokens=1,2,3,4 delims=/ " %%d in ('date /T') do ( set Jour=%%d%%e%%f)
rename test.zip test%Jour%.zip
Herve
Trouve ci-après un autre exemple.
fichier: test.bat
for /F "tokens=1,2,3,4 delims=/ " %%d in ('date /T') do ( set Jour=%%d%%e%%f)
rename test.zip test%Jour%.zip
Herve
jivef
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
306
12 mai 2011 à 04:07
12 mai 2011 à 04:07
Bonjour,
Sous WIndows ou MS-DOS, la syntaxe est assez complexe :
Dans mon exemple, je mets mon adresse IP publique dans la variable et j'utilise wget que j'ai téléchargé.
A l'intérieur d'un batch tu écriras
for /f %%1 in ('wget -qO- icanhazip.com') do set PUBLICIP=%%~n1
echo %PUBLICIP%
En ligne de commande directe, tu écriras :
for /f %1 in ('wget -qO- icanhazip.com') do set PUBLICIP=%~n1
echo %PUBLICIP%
Microsoft est tordu, ils ne sont même pas foutu de faire la même syntaxe en ligne et en batch...
Si tu veux mettre le contenu d'un fichier, tu écriras :
for /f %1 in ('type monfichier.txt') do set MONFIC=%~n1
echo %MONFIC%
attention, le fichier ne contient qu'une ligne, sinon, ça ne marchera pas.
Bien cordialement.
Jonas V. F.
Sous WIndows ou MS-DOS, la syntaxe est assez complexe :
Dans mon exemple, je mets mon adresse IP publique dans la variable et j'utilise wget que j'ai téléchargé.
A l'intérieur d'un batch tu écriras
for /f %%1 in ('wget -qO- icanhazip.com') do set PUBLICIP=%%~n1
echo %PUBLICIP%
En ligne de commande directe, tu écriras :
for /f %1 in ('wget -qO- icanhazip.com') do set PUBLICIP=%~n1
echo %PUBLICIP%
Microsoft est tordu, ils ne sont même pas foutu de faire la même syntaxe en ligne et en batch...
Si tu veux mettre le contenu d'un fichier, tu écriras :
for /f %1 in ('type monfichier.txt') do set MONFIC=%~n1
echo %MONFIC%
attention, le fichier ne contient qu'une ligne, sinon, ça ne marchera pas.
Bien cordialement.
Jonas V. F.
neo_selen
Messages postés
153
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
15
24 nov. 2011 à 00:46
24 nov. 2011 à 00:46
hélas, je souhaitais scripter pour changer les noms d'un tas de fichiers avec des noms vraiment bizarres (le cache des images des contacts msn) sans extension qui finissent parfois par = ou encore ? et jamais par un .extension !
jivef
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
306
12 déc. 2011 à 20:24
12 déc. 2011 à 20:24
Bizarre, le "=" est normalement interdit sous dos.
A mon avis, tu devrais lister tes fichiers via la fenêtre de commande DOS, et pas via l'interface graphique.
Fait la liste de tes fichiers et redirige la sortie vers un autre fichier.
c:\> dir > %temp%\ficlist.txt
Ensuite, pour retrouver ton fichier, va dans :
ouvre %temp%\ficlist.txt
A mon avis, tu devrais lister tes fichiers via la fenêtre de commande DOS, et pas via l'interface graphique.
Fait la liste de tes fichiers et redirige la sortie vers un autre fichier.
c:\> dir > %temp%\ficlist.txt
Ensuite, pour retrouver ton fichier, va dans :
ouvre %temp%\ficlist.txt
neo_selen
Messages postés
153
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
15
23 févr. 2012 à 19:54
23 févr. 2012 à 19:54
ah je sais bien que sous DOS c'est impossible
minecraft nomme bien son répertoire dans %appdata% :
.minecraft
et pourtant le jeu fonctionne nickel..
DOS empêche ça car il n'y a pas de syntaxe existante pour déspécialiser un caractère...
minecraft nomme bien son répertoire dans %appdata% :
.minecraft
et pourtant le jeu fonctionne nickel..
DOS empêche ça car il n'y a pas de syntaxe existante pour déspécialiser un caractère...
neo_selen
Messages postés
153
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
15
23 févr. 2012 à 19:56
23 févr. 2012 à 19:56
dans les autres langages, PHP, Javascript, ça existe.
mais par exemple, dans VBScript, nietz ! que dalle.
merci pour l'astuce :)
mais par exemple, dans VBScript, nietz ! que dalle.
merci pour l'astuce :)
jivef
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
306
16 oct. 2013 à 09:38
16 oct. 2013 à 09:38
Le . en début de fichier n'est pas interdit par DOS.
C'est le signe = qui l'est.
Remarque bien qu'à mon avis le système le plus permissif est encore UNIX dans toutes ses déclinaisons. Il n'y a qu'avait UNIX qu'on peut appeler un fichier "*" D'ailleurs, ça se fait parfois accidentellement.
C'est le signe = qui l'est.
Remarque bien qu'à mon avis le système le plus permissif est encore UNIX dans toutes ses déclinaisons. Il n'y a qu'avait UNIX qu'on peut appeler un fichier "*" D'ailleurs, ça se fait parfois accidentellement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sam3000
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
144
2 juin 2005 à 08:51
2 juin 2005 à 08:51
salut voici une solution qui marche avec "DATE" seulement, pour une autre commande, il faudrais que tu trouve le "truc" correspondant.
on a besoin de deux fichiers, le nom du premier "la.bat" est obligatoire, il ne faut pas le changer, le second tu est libre de le nommer:
---LA.BAT
---VARAB.BAT
le résultat (date) est dans la variable %vdt%
si tu ne comprend pas l'astuce utilisé, pose des questions.
sur ce, @*
on a besoin de deux fichiers, le nom du premier "la.bat" est obligatoire, il ne faut pas le changer, le second tu est libre de le nommer:
---LA.BAT
@echo off :repeter if "%1"=="" goto fin set vdt=%1 shift goto repeter :fin
---VARAB.BAT
@echo off echo. >f1.tmp echo @echo off >f1.bat echo @echo off >entrez.bat date <f1.tmp >>f1.bat call f1.bat del f1.tmp del f1.bat del entrez.bat echo %vdt%
le résultat (date) est dans la variable %vdt%
si tu ne comprend pas l'astuce utilisé, pose des questions.
sur ce, @*
Bonjour,
On ne peut pas choisir le format de la date qui sera renvoyé sous Windows.
Mais tu peux toujours te faire un petit fichier .bat qui coniendra les instructions que j'ai indiqué :
set jour=%date:~0,2%
set mois=%date:~3,2%
set annee=%date:~6,4%
echo %annee%/%mois%/%jour%
Quoi que je fais un test et je m'aperçois qu'il y'a un espace entre l'année et le premier slash ( / )... :-(
On ne peut pas choisir le format de la date qui sera renvoyé sous Windows.
Mais tu peux toujours te faire un petit fichier .bat qui coniendra les instructions que j'ai indiqué :
set jour=%date:~0,2%
set mois=%date:~3,2%
set annee=%date:~6,4%
echo %annee%/%mois%/%jour%
Quoi que je fais un test et je m'aperçois qu'il y'a un espace entre l'année et le premier slash ( / )... :-(
jivef
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
306
17 janv. 2012 à 05:27
17 janv. 2012 à 05:27
Bonjour,
Bien vu, encore plus simple et pas besoin de boucle for.
(j'ai plus l'habitude de la syntaxe unix que je trouve plus riche...)
Sous linux on a même une option pour avoir le format 8601 d'emblée...
tux:/home/jivef # date --iso-8601
2012-01-16
Et pour créer le dossier avec ce nom :
tux:/home/jivef # mkdir 'date --iso-8601'
Vérifions :
tux:/home/jivef # ls -ld 2012*
drwxr-xr-x 2 root root 4096 2012-01-16 18:30 2012-01-16
Voila le travail.
Avec le bash sous GNU/linux : 1 seule ligne, avec DOS une floppée.
A bientux.
Jonas.
Bien vu, encore plus simple et pas besoin de boucle for.
(j'ai plus l'habitude de la syntaxe unix que je trouve plus riche...)
Sous linux on a même une option pour avoir le format 8601 d'emblée...
tux:/home/jivef # date --iso-8601
2012-01-16
Et pour créer le dossier avec ce nom :
tux:/home/jivef # mkdir 'date --iso-8601'
Vérifions :
tux:/home/jivef # ls -ld 2012*
drwxr-xr-x 2 root root 4096 2012-01-16 18:30 2012-01-16
Voila le travail.
Avec le bash sous GNU/linux : 1 seule ligne, avec DOS une floppée.
A bientux.
Jonas.
Siouplait!!!!
Personne ne connais le DOS ou quoi?
j'arrive a creer une variable,
a mettre du texte ou autre
mais la commande date qui retourne du texte
du type "mer. 01/06/05"
je n'arrive pas a le recuperer dans ma variable
meme avec un truc du genre:
date /t > variable
mais ca marche pas!!!
Personne aurit une idee??
Merci d'avance
Personne ne connais le DOS ou quoi?
j'arrive a creer une variable,
a mettre du texte ou autre
mais la commande date qui retourne du texte
du type "mer. 01/06/05"
je n'arrive pas a le recuperer dans ma variable
meme avec un truc du genre:
date /t > variable
mais ca marche pas!!!
Personne aurit une idee??
Merci d'avance
jivef
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
306
23 juin 2011 à 05:23
23 juin 2011 à 05:23
Bonjour,
Grâce à une option de la commande set, tu peux mettre le contenu d'un fichier dans une variable :
Pour la date, voici donc la marche à suivre.
C:\temp>date /t > date.txt
C:\temp>set /p date=< date.txt
C:\temp>echo %date%
22/06/2011
Un peu tiré par les cheveux, mais c'est du M$.
Grâce à une option de la commande set, tu peux mettre le contenu d'un fichier dans une variable :
Pour la date, voici donc la marche à suivre.
C:\temp>date /t > date.txt
C:\temp>set /p date=< date.txt
C:\temp>echo %date%
22/06/2011
Un peu tiré par les cheveux, mais c'est du M$.
sam3000
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
144
1 juin 2005 à 20:48
1 juin 2005 à 20:48
Salut,
ce n'est pas aussi simple d'utiliser DOS
si c'etait Linux (ou un autre *nix) ça serait tres faisable!
en fait le truc c'est de chercher comment crer un second Batch contenant la valeur et la variable sur la même ligne puis l'executer
je cherche une solution et je te répond.
ce n'est pas aussi simple d'utiliser DOS
si c'etait Linux (ou un autre *nix) ça serait tres faisable!
en fait le truc c'est de chercher comment crer un second Batch contenant la valeur et la variable sur la même ligne puis l'executer
je cherche une solution et je te répond.
^^ dsl mais je ne comprends pas tout...
et je sais pas ce que j'ai fais mais que j'execute l'un ou l'utre script
ca n'a pas l'air de marcher. Je suis un peu teubé.
En tout cas merci pour le temps que tu passe sur mes soucis.
Mais comme je l'ai dis plus haut, le format de la date me pose
probleme pour creer un repertoire par la suite qui prends pour nom
la date. cela me creer une arborescence.
Cela semble etre une impasse!!
et je sais pas ce que j'ai fais mais que j'execute l'un ou l'utre script
ca n'a pas l'air de marcher. Je suis un peu teubé.
En tout cas merci pour le temps que tu passe sur mes soucis.
Mais comme je l'ai dis plus haut, le format de la date me pose
probleme pour creer un repertoire par la suite qui prends pour nom
la date. cela me creer une arborescence.
Cela semble etre une impasse!!
sam3000
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
144
2 juin 2005 à 10:01
2 juin 2005 à 10:01
ton probleme est le "/" séparateur dans la date
tu devra changer tes parametres d'affichage de la date
si tu es sous Windows XP, tu va dans:
+panneau de configuration
++options régionales et linguistiques
+++Bouton [Personaliser] (dans l'onglet "options régionales" la zone "Standards et formats")
++++Onglet "Date"
dans le "séparateur de date", tu choisis le "-" (signe moins)
dans le format de date courte tu choisis "aaaa-mm-jj"
tu valide les changements et voila! sous DOS tu as les dates au format "2005-06-02" c'est valide pour créer un dossier
sinon dans mes programmes, il faut mettre les deux fichiers dans un meme dossier, et lancer le programme "VARAB.BAT" et y mettre tous traitement sur la date à la place de "echo %vdt%"
sur ce, @*
tu devra changer tes parametres d'affichage de la date
si tu es sous Windows XP, tu va dans:
+panneau de configuration
++options régionales et linguistiques
+++Bouton [Personaliser] (dans l'onglet "options régionales" la zone "Standards et formats")
++++Onglet "Date"
dans le "séparateur de date", tu choisis le "-" (signe moins)
dans le format de date courte tu choisis "aaaa-mm-jj"
tu valide les changements et voila! sous DOS tu as les dates au format "2005-06-02" c'est valide pour créer un dossier
sinon dans mes programmes, il faut mettre les deux fichiers dans un meme dossier, et lancer le programme "VARAB.BAT" et y mettre tous traitement sur la date à la place de "echo %vdt%"
sur ce, @*
^^ Ayer ca marche!!!!
j'arrive a creer mon repertoire c'est super
je te remercie enormement.
Pour information, j'étais sous Win NT4 mais tu pouvais pas le savoir
donc j'ai modifier la base de regestre
au niveau du separateur.
HKEY_CURRENT_USER\Control Panel\International\sDate :
et j'ai remplacé "/" par "-"
^^ merci encore
j'arrive a creer mon repertoire c'est super
je te remercie enormement.
Pour information, j'étais sous Win NT4 mais tu pouvais pas le savoir
donc j'ai modifier la base de regestre
au niveau du separateur.
HKEY_CURRENT_USER\Control Panel\International\sDate :
et j'ai remplacé "/" par "-"
^^ merci encore
sam3000
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
144
2 juin 2005 à 11:03
2 juin 2005 à 11:03
De rien,
si tu as d'autres question, n'hesite pas.
sur ce, @*
si tu as d'autres question, n'hesite pas.
sur ce, @*
Bonjour,
y a-t-il une commande pour gérer le format de la date ? par exemple si la date affichée par défaut est 15/10/2007, quelle ligne de commande me permet de changer le format de la date de telle façon à ce que la commande date /t me renvoie 2007/10/15 ?
merci pour vos réponses.
Med
y a-t-il une commande pour gérer le format de la date ? par exemple si la date affichée par défaut est 15/10/2007, quelle ligne de commande me permet de changer le format de la date de telle façon à ce que la commande date /t me renvoie 2007/10/15 ?
merci pour vos réponses.
Med
jivef
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
306
23 juin 2011 à 05:28
23 juin 2011 à 05:28
Bonjour,
L'inconvénient c'est qu'avec MS-DOS, tu n'as pas d'option dans l'affichage de la date qui te permette de choisir ton format de présentation.
Avec des systèmes tels que GNU/Linux tu en as un paquet et même trop parfois.
Pour mettre ta date au format ISO-8601 (Année-Mois-Jour) il te faut utiliser une boucle "for".
for /F "delims=/ tokens=1,2,3" %i in ('date /t') do set vardate=%3-%2-%1
echo %vardate%
Attention ! Microsoft est tordu... Dans un batch la syntaxe sera légèrement différente :
for /F "delims=/ tokens=1,2,3" %%i in ('date /t') do set vardate=%%3-%%2-%%1
echo %vardate%
L'inconvénient c'est qu'avec MS-DOS, tu n'as pas d'option dans l'affichage de la date qui te permette de choisir ton format de présentation.
Avec des systèmes tels que GNU/Linux tu en as un paquet et même trop parfois.
Pour mettre ta date au format ISO-8601 (Année-Mois-Jour) il te faut utiliser une boucle "for".
for /F "delims=/ tokens=1,2,3" %i in ('date /t') do set vardate=%3-%2-%1
echo %vardate%
Attention ! Microsoft est tordu... Dans un batch la syntaxe sera légèrement différente :
for /F "delims=/ tokens=1,2,3" %%i in ('date /t') do set vardate=%%3-%%2-%%1
echo %vardate%
Bonjour,
je cherche depuis ce matin 8:00 un moyen de rennomer un fichier avec SA date, non pas la dae du systeme, du jour ou autre...
Le problème est de pouvoir récuperer la date d'un fichier dans une variable pour ensuite rennomer le fichier en question.
Quelqu'un serait m'aider?
je cherche depuis ce matin 8:00 un moyen de rennomer un fichier avec SA date, non pas la dae du systeme, du jour ou autre...
Le problème est de pouvoir récuperer la date d'un fichier dans une variable pour ensuite rennomer le fichier en question.
Quelqu'un serait m'aider?
bonjour,
et maintenant comment faire pour changer le format de date en / sous vista?
Il n'y a pas l'option "séparateur de date" dans Date, Personnaliser les options régionales.
Merci
et maintenant comment faire pour changer le format de date en / sous vista?
Il n'y a pas l'option "séparateur de date" dans Date, Personnaliser les options régionales.
Merci
Bonjour,
J'utilise regulierement ces lignes pour recuperer dans des variables individuelles les jour, mois, an, heure, minute, seconde et centieme.
Si cela peux vous aider.
for /f "tokens=6-8 delims=:/ " %%a in ('"echo. ^|date|find /i "est""') do set jour1=%%a&set mois1=%%b& set an1=%%c
for /f "tokens=4-7 delims=:, " %%a in ('"echo. ^|time|find /i "est""') do set heure1=%%a&set minute1=%%b& set seconde1=%%c& set centieme1=%%d
echo D‚but de traitement = %heure1%:%minute1%:%seconde1%,%centieme1%
A vous de mettre les séparateurs voulu.
J'utilise regulierement ces lignes pour recuperer dans des variables individuelles les jour, mois, an, heure, minute, seconde et centieme.
Si cela peux vous aider.
for /f "tokens=6-8 delims=:/ " %%a in ('"echo. ^|date|find /i "est""') do set jour1=%%a&set mois1=%%b& set an1=%%c
for /f "tokens=4-7 delims=:, " %%a in ('"echo. ^|time|find /i "est""') do set heure1=%%a&set minute1=%%b& set seconde1=%%c& set centieme1=%%d
echo D‚but de traitement = %heure1%:%minute1%:%seconde1%,%centieme1%
A vous de mettre les séparateurs voulu.
neo_selen
Messages postés
153
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
15
10 oct. 2010 à 09:22
10 oct. 2010 à 09:22
et pour l'option delims, j'ai un gros souci: les fichiers ont des noms si bizarres qu'il finissent par un = tous. comment renommer completement ces fichiers en toto.jpg à la place de: (c un exemple de ce que j'ai)
CWKlKODMVbRMwdc1yYpgQN4+sAA=
EB2FBs99ImnfjbZoGMpFVYJyvjIo=
et j'ai trouvé tout ce qu'il faut pour renommer les fichiers en .ext ou autre mais pas pour ce cas assez difficile. es ce qu'on peut remplacer par un %ext%
et déclarer que :
set ext = "=" ?
ou une autre astuce dans le genre ?
CWKlKODMVbRMwdc1yYpgQN4+sAA=
EB2FBs99ImnfjbZoGMpFVYJyvjIo=
et j'ai trouvé tout ce qu'il faut pour renommer les fichiers en .ext ou autre mais pas pour ce cas assez difficile. es ce qu'on peut remplacer par un %ext%
et déclarer que :
set ext = "=" ?
ou une autre astuce dans le genre ?
neo_selen
Messages postés
153
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
15
10 oct. 2010 à 09:23
10 oct. 2010 à 09:23
je suis en train de faire un batch qui permet de copier le cache d'un logiciel qui a des images dont les noms sont assez curieux mais,qui renommés en .jpg donnent parfaite visibilité sur l'image. seule limite à ce batch: celle décrite ! la longueur des noms semble variable.
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
204
11 oct. 2010 à 14:56
11 oct. 2010 à 14:56
salut
il faut connaitre d'abord l'emplacement des fichiers, a lasuite utilisez les commandes suivantes:
attrib -s -h -r -a "chemin des fichiers" /s /d
ren "chemin des fichiers\*.xxx" "chemin des fichiers\*.jpg"
il faut connaitre d'abord l'emplacement des fichiers, a lasuite utilisez les commandes suivantes:
attrib -s -h -r -a "chemin des fichiers" /s /d
ren "chemin des fichiers\*.xxx" "chemin des fichiers\*.jpg"
neo_selen
Messages postés
153
Date d'inscription
dimanche 11 juillet 2010
Statut
Membre
Dernière intervention
29 juin 2016
15
17 mai 2011 à 23:27
17 mai 2011 à 23:27
re ! (mon 1er déterrage de topic)
bon,j'ai tj pas trouvé,entre temps j'ai scripté d'autres trucs :) mais hélas,dans les noms de fichiers que j'ai cité,tes méthodes ne peuvent être valables,et pour cause:
y'a pas d'extension ! t'as mis .xxx mais y'a pas de point où je puisse lui indiquer le "token delims",mis à part le égal...
le seul moyen c'est de combiner mes connaissances sommaires en batch et en vbscript:
en effet le vbscript peut lancer des commandes tout comme le batch,et même on peut intégrer des commandes batch dans le vbscript. (exclusif à windows,les deux.)
en effet,pourquoi ne pas créer une variable texte dans laquelle je lis le nom du fichier,puis remplace le nom par un autre,compté par une boucle for ?
bon,je teste et jreviens,je scripte bcp pr apprendre mais ya pas que ça aussi (vais pas laisser refroidir la clope xD)
bon,j'ai tj pas trouvé,entre temps j'ai scripté d'autres trucs :) mais hélas,dans les noms de fichiers que j'ai cité,tes méthodes ne peuvent être valables,et pour cause:
y'a pas d'extension ! t'as mis .xxx mais y'a pas de point où je puisse lui indiquer le "token delims",mis à part le égal...
le seul moyen c'est de combiner mes connaissances sommaires en batch et en vbscript:
en effet le vbscript peut lancer des commandes tout comme le batch,et même on peut intégrer des commandes batch dans le vbscript. (exclusif à windows,les deux.)
en effet,pourquoi ne pas créer une variable texte dans laquelle je lis le nom du fichier,puis remplace le nom par un autre,compté par une boucle for ?
bon,je teste et jreviens,je scripte bcp pr apprendre mais ya pas que ça aussi (vais pas laisser refroidir la clope xD)
slt
L'extension des images se trouve au début du fichier ; lisible avec le Bloc-notes.
Si tu arrives à lire le début du fichier (commande 'type' redirigée), ça peut servir.
Ce genre de nom est le nom des fichiers des images pour Windows Live Messenger.
L'extension est ".dt2" ... ; fichiers accolés à des fichiers ".id2" ; images profil utilisateur :
C:\Users\%USERNAME%\AppData\Local\Microsoft\Messenger\x@x.x\ObjectStore\UserTile
Vérifiez les images avec un hasheur de fichiers ; elles semblent identiques mais non en fait.
Les images sont ".jfif" ou ".png" selon la version de messenger, récente ou non (...).
Vérifiez la profondeur de couleur ... 24 => 32 ; les images sont normalisées.
Modèle pour le nom pour vos images persos ou non (celles que vous voulez sauver) :
AvatarNOMNOM32BitsCRC32=12345678date20120117-XXhXXmXX.png
6 lettres pour le nom maxi ; le nom visible mouseover dans WLM 2011 sera :
"AvatarNOMNOM32BitsCRC32=12345678date2012" ou juste "?"
Je cherchais des infos pour savoir comment passer une variable pour réduire des commandes afin de pouvoir mettre plus de choses ; en lançant les commandes directement. (( Variable set avec cmd k ne fonctionne pas | CommentCaMarche :
http://www.commentcamarche.net/forum/affich-24169826-variable-set-avec-cmd-k-ne-fonctionne-pas )) ; merci par avance au cas où.
L'extension des images se trouve au début du fichier ; lisible avec le Bloc-notes.
Si tu arrives à lire le début du fichier (commande 'type' redirigée), ça peut servir.
Ce genre de nom est le nom des fichiers des images pour Windows Live Messenger.
L'extension est ".dt2" ... ; fichiers accolés à des fichiers ".id2" ; images profil utilisateur :
C:\Users\%USERNAME%\AppData\Local\Microsoft\Messenger\x@x.x\ObjectStore\UserTile
Vérifiez les images avec un hasheur de fichiers ; elles semblent identiques mais non en fait.
Les images sont ".jfif" ou ".png" selon la version de messenger, récente ou non (...).
Vérifiez la profondeur de couleur ... 24 => 32 ; les images sont normalisées.
Modèle pour le nom pour vos images persos ou non (celles que vous voulez sauver) :
AvatarNOMNOM32BitsCRC32=12345678date20120117-XXhXXmXX.png
6 lettres pour le nom maxi ; le nom visible mouseover dans WLM 2011 sera :
"AvatarNOMNOM32BitsCRC32=12345678date2012" ou juste "?"
Je cherchais des infos pour savoir comment passer une variable pour réduire des commandes afin de pouvoir mettre plus de choses ; en lançant les commandes directement. (( Variable set avec cmd k ne fonctionne pas | CommentCaMarche :
http://www.commentcamarche.net/forum/affich-24169826-variable-set-avec-cmd-k-ne-fonctionne-pas )) ; merci par avance au cas où.
slt re
dateheuretestbouclefor.bat
1,19 Ko (1 226 octets)
CRC32: 8FED040E
MD5: 8C3482BC997E14865989478CF3D8E1A3
SHA-1: 21BABB0E153B7C4C948383C80673DA920FD731E7
SHA-256: 75207654EF29F3DA93EBD64BDF20C7076FA48AD3798D7409FA80F0E4D9033A77
à vous lire
dateheuretestbouclefor.bat
1,19 Ko (1 226 octets)
CRC32: 8FED040E
MD5: 8C3482BC997E14865989478CF3D8E1A3
SHA-1: 21BABB0E153B7C4C948383C80673DA920FD731E7
SHA-256: 75207654EF29F3DA93EBD64BDF20C7076FA48AD3798D7409FA80F0E4D9033A77
@echo off setlocal :tettast cls echo test date heure boucle = add 0 for 'am' time and format date and time set mimi= echo. echo --------- echo %date% echo --------- echo %time% echo --------- echo. for /F "tokens=1,2,3,4,5,6 delims=/^:, " %%i in ("%date%%time%") do set mimi=%%k%%i%%j-%%lh%%mm%%n rem EQU - égal à rem NEQ - différent de rem LSS - inférieur à rem LEQ - inférieur ou égal à rem GTR - supérieur à rem GEQ - supérieur ou égal à echo Display = 2 hours or 12 hours ... set mimitest24hoursam=%mimi:~0,8%-2h%time:~3,2%m%time:~6,2% echo %mimitest24hoursam% set mimitest24hourspm=%mimi:~0,8%-12h%time:~3,2%m%time:~6,2% echo %mimitest24hourspm% echo. echo Dynamical hours and format date and time ... if not %%l geq 10 goto notime10to24hours echo varfilename%mimi:~0,9%%mimi:~9,17%-CRC32=varcrc32file.varextfile = time10to24hours (pm) echo. :notime10to24hours if not %%l leq 9 goto notime0to9hours echo varfilename%mimi:~0,9%0%mimi:~9,17%-CRC32=varcrc32file.varextfile = time0to9hours (am) echo. :notime0to9hours rem echo %mimi:~0,9% rem echo Z%mimi:~10,17% echo. echo Ctrl + c pour sortir de la boucle echo. timeout /t 5 goto tettast :eof endlocal exit /B
à vous lire
26 sept. 2013 à 16:55
rapide et efficace
JP