web-dev-qa-db-fra.com

Comment obtenir la date dans le fichier BAT

Je dois obtenir la date d'aujourd'hui dans le fichier Window *.bat. Après cela, j'aimerais avoir un jour, un mois et une année. Comment puis-je faire ceci?
Je ne peux pas utiliser PowerShell

22
Jacek

Vous obtenez et formatez comme ça

for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
     set dow=%%i
     set month=%%j
     set day=%%k
     set year=%%l
)
set datestr=%month%_%day%_%year%
echo datestr is %datestr%
23
Ozan Yurtseven

Cela vous donnera des variables DD MM YYYY YY HH Min Sec et fonctionne sur tout ordinateur Windows à partir de XP Pro et ultérieur.

@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
47
foxidrive

%date% vous donnera la date.

%time% vous donnera l'heure.

Les commandes date et time /t peuvent vous donner plus de détails.

19
canhazbits

Une ligne indépendante des paramètres régionaux pour obtenir le format de date de votre choix. Je l'utilise pour générer des noms d'archives. L'option de devis en retour est nécessaire car la ligne de commande PowerShell utilise des guillemets simples.

:: Get date in yyyyMMdd_HHmm format to use with file name.
FOR /f "usebackq" %%i IN (`PowerShell ^(Get-Date^).ToString^('yyyy-MM-dd'^)`) DO SET DTime=%%i

:: Get formatted yesterday date.
FOR /f "usebackq" %%i IN (`PowerShell ^(Get-Date^).AddDays^(-1^).ToString^('yyyy-MM-dd'^)`) DO SET DTime=%%i

:: Show file name with the date.
echo Archive.%DTime%.Zip
1
Evaldas Jocys
set datestr=%date%
set result=%datestr:/=-%
@echo %result%
pause
0
jfindley