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
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%
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
%date%
vous donnera la date.
%time%
vous donnera l'heure.
Les commandes date
et time /t
peuvent vous donner plus de détails.
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
set datestr=%date%
set result=%datestr:/=-%
@echo %result%
pause