Créer un dossier avec date du jour en batch

Olivier_36

Nouveau membre
Salut, alors je remonte un très vieux post (11 ans déjà)

Bonjour

Voici le code que j'ai utilisé :

set jour=%date:~0,2%
set mois=%date:~3,2%
set annee=%date:~6,4%
set a=%annee%.%mois%.%jour%"

md "%a%G5"

Sur windows 10, j'ai 2 résultats :
soit 2016.09.23 G5 (recherché)
Soit t. 2.se.23 G5 (Pas du tout recherché)

J'ai l'impression que l'UAC est la cause. Qqn a une solution?

Merci d'avance
 

Olivier_36

Nouveau membre
Alors, je m'auto répond. Le batch se base sur l'affichage de la date de votre PC.

Ainsi, mes PC étant configuré en 23 sept16 il reproduit cette date

Qqn connais le code qui donne un format précis de la date?
 

Olivier_36

Nouveau membre



merci je teste ça tout de suite
 

Olivier_36

Nouveau membre


Voici ton code que j'apprécie beaucoup et que j'ai adapté à mon besoin

@echo off
SET D=%DATE%
SET DA=%D:/=-%
ECHO %DA%
mkdir "%DA%"

Comme annoncé plus bas, ce code se base sur l'affichage programmé sur le PC.

Donc sur certain PC, j'ai "23-09-16" et sur d'autres "23 sept. 2016"

Une idée sur une solution?

Pq me compliquer la vie?
Car je prépare des PC que je clone sur un disque externe. Le disque doit contenir la même nomenclature de base
 

patt024

Habitué
Bonjour, je vais te donné une piste :

- Tu peux changer le format de date en commençant ton batch
- Le format de date ce trouve dans le registre dans la clé HKCU\Control pannel\International dans la clé "sShortDate"
- La commande "REG" en batch te permet de modifier le registre :

Voici la liste des format de date qui peuvent etre utilisé dans la clé "sShortDate" :

•JJ/MM/AAAA.
•J/aa
•Jj/mm/aaaa
•MM/jj/aa
•yy/MM/JJ
•AAAA-MM-JJ.
•JJ-MMM-AA

Maintenant à toi de trouver, je peux t'aider si tu as besoin.
 

magellan

Modérâleur
Staff
Aie stop les frais. NE JAMAIS retoucher ainsi le registre, cela modifie TOUT ton Windows concernant le format.
Reconstruis plutôt ta date comme tu l'entends... cherche du côté du batch sur la gestion du formatage de la date en variables, ne t'amuse pas à bidouiller celle de la machine cible.
 

patt024

Habitué
Je ne vois pas réellement le souci Magellan, surtout si tu utilise Reg save au debut et reg restore à la fin pour remettre le tout si nécessaire. L'important c'est de tester en virtuel avant déploiement bien sur !!!!

De plus j'ai cru comprendre que c'est dans le but de cloner les machines donc d'avoir un standard établi pour le format de date ne peux pas être mauvais.

Mais sinon l'idée de vérifier le contenu de la variable mois pour la convertir si nécessaire n'est pas une mauvaise idée non plus.
 

setlocalenabledelayedexpansion

Nouveau membre
Bonjour,
je propose:

Code:
@echo off
mode con cols=50 lines=4
:: Je prépare mon format de date désiré:
:: %%a est le jour - %%b est le mois - %%c est l'année sur 4 chiffres.
:: J'utilise comme séparateur le underscore  " _ "
for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do set ladate=%%a_%%b_%%c

:: J'invite l'utilisateur à renseigner un nom pour construire le dossier avec la variable "quoi".
echo.
SET /P quoi=" Le nom du dossier, SVP ? "

:: J'invite l'utilisateur à renseigner un chemin [PATH] ou construire le dossier avec la variable "ou".
echo.
SET /P ou=" Emplacement ? "

:: je construis le dossier à l'endroit voulu.
MKDIR "%ou%\%quoi%_%ladate%"

:: je vérifie que le dossier existe bien là où il doit être.
color 0A
if exist "%ou%\%quoi%_%ladate%" CLS & echo. & echo Le dossier %quoi% existe ! & goto fin
color 0C
if not exist "%ou%\%quoi%_%ladate%" CLS & echo. & echo Le dossier %quoi%  N ' EXISTE PAS ! & goto fin

:fin
color
ping 127.0.0.1 -n 3 > nul
exit

Le dossier avec la variable %quoi% est construit à l'emplacement de votre choix avec la variable %ou%.

La Date prend le format des variables %%a %%b %%c ainsi on peut accommoder à volonté le format de uneDate en deuxDate ou inversement :D

Il est possible de définir un emplacement par défaut en appelant via une variable, un chemin contenu dans un fichier ini. Mais ça c'est un autre sujet.
 

setlocalenabledelayedexpansion

Nouveau membre
Bonjour,
je propose:

Code:
@echo off
mode con cols=50 lines=4
:: Je prépare mon format de date désiré:
:: %%a est le jour - %%b est le mois - %%c est l'année sur 4 chiffres.
:: J'utilise comme séparateur le underscore  " _ "
for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do set ladate=%%a_%%b_%%c

:: J'invite l'utilisateur à renseigner un nom pour construire le dossier avec la variable "quoi".
echo.
SET /P quoi=" Le nom du dossier, SVP ? "

:: J'invite l'utilisateur à renseigner un chemin [PATH] ou construire le dossier avec la variable "ou".
echo.
SET /P ou=" Emplacement ? "

:: je construis le dossier à l'endroit voulu.
MKDIR "%ou%\%quoi%_%ladate%"

:: je vérifie que le dossier existe bien là où il doit être.
color 0A
if exist "%ou%\%quoi%_%ladate%" CLS & echo. & echo Le dossier %quoi% existe ! & goto fin
color 0C
if not exist "%ou%\%quoi%_%ladate%" CLS & echo. & echo Le dossier %quoi%  N ' EXISTE PAS ! & goto fin

:fin
color
ping 127.0.0.1 -n 3 > nul
exit

Le dossier avec la variable %quoi% est construit à l'emplacement de votre choix avec la variable %ou%.

La Date prend le format des variables %%a %%b %%c ainsi on peut accommoder à volonté le format de la date, à condition de respecter les caractères autorisés pour la construction d'un dossier :D

Il est possible de définir un emplacement par défaut en appelant via une variable, un chemin contenu dans un fichier ini. Mais ça c'est un autre sujet.
 

magellan

Modérâleur
Staff


Réponse tardive: ne JAMAIS bricoler les paramètres régionaux à la volée, parce que ceux-ci peuvent poser des soucis de fonctionnement dans des applications tierces. Cas d'école: un changement de format peut influer sur l'interprétation dans excel, dans nombre d'applications de comptabilité, ou encore dans des gestionnaires d'accès sécurisés liés à des délais de traitement.
Dans ces conditions, on ne bricole pas de ce côté, on cherche plus une méthode pérenne et compatible avec tous les formats locaux!
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 717 999
Membres
1 586 386
Dernier membre
aviateurdesairs
Partager cette page
Haut