Fichier batch pour créer un dossier en fonction de la date et de l’heure actuelles

Nous avons un fichier batch simple qui crée une sauvegarde d’un dossier et ajoute la date et l’heure à la fin.

Nous l’utilisons de manière incrémentielle et nous générons un dossier tel que “données 28-04-13”.

Je voudrais append le temps à la fin de ceci, cependant mon code produit le temps comme HH: MM, qui n’est pas valide pour un nom de dossier car il inclut deux points (:).

S’il vous plaît quelqu’un pourrait modifier mon code pour supprimer le:, ou le remplacer par un “.”.

Je vous remercie

@echo off & for /F "tokens=1-4 delims=/ " %%A in ('date/t') do ( set DateDay=%%A set DateMonth=%%B set DateYear=%%C ) @echo off & for /F "tokens=1-4 delims=/ " %%D in ('time/t') do ( set DateTime=%%D ) set CurrentDate=%DateDay%-%DateMonth%-%DateYear%-%DateTime% md "F:\MobilePC\data %CurrentDate" 

Répond à ma propre question

Donc, c’était le moyen le plus facile pour moi:

 set CurrentDate=%DateDay%-%DateMonth%-%DateYear%-%time:~0,2%.%time:~3,2% 

Quelles sorties “31-10-13-11.35”

Les quatre premières lignes de ce code vous donneront des variables fiables YY JJ MM AAAA HH Min Sec dans XP Pro et versions ultérieures.

Les variables de date et d’heure cmd intégrées sont configurables par l’utilisateur et ne sont donc pas fiables pour tout fichier de commandes général.

 @echo off for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a" set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%" set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%" set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%" set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%" echo datestamp: "%datestamp%" echo timestamp: "%timestamp%" echo fullstamp: "%fullstamp%" pause 
 rem replace : with . set myTime=%time::=.% rem remove cents of second set myTime=%myTime:~0,-3% 

Pour ce faire, vous pouvez définir la date et l’heure actuelles. Je l’utilise quotidiennement dans mon fichier de commandes.

 %date:~10%%date:~4,2%%date:~7,2%%time:~0,2%%time:~3,2% 

sortie:

 201509141639 ( 14th sept 2015 04:39 PM ) 

http://www.dostips.com/DtTipsSsortingngManipulation.php

Exécutez une recherche pour “Remplacer une sous-chaîne”.

  setlocal set "time=%time::=%" rem check that date has / delimeter if not replace it for valid md %date:/=%_%time:~0,-3% endlocal 

Ce code créera un dossier nommé avec la date et l’heure actuelles et copiera l’intégralité du contenu du dossier “D: \ Tally Data” dans le dossier “08-10-2016 17 23”.

Il nécessite un dossier nommé “Tally Data” dans le lecteur D de votre ordinateur. (Copiez le code ci-dessous dans un document texte et enregistrez-le en tant que fichier de commandes DOS)

 for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a set time=%TIME:~0,2%" "%TIME:~3,2% mkdir C:\%date:/=%" "%time%\Backup xcopy "D:\Tally Data" C:\%date:/=%" "%time%\Backup /E /S /Q /Y