windows - dag mangler fra dato

Indlæg af Hanne Mølgaard Plasc

Problem



Se Batchkode nedenfor, det viser en dato og klokkeslæt, men dagen mangler. Sådan repareres dette?


kode:


@echo off
For /f "tokens=2-4 delims=/ " \%\%a in ('date /t') do (set dt=\%\%c-\%\%a-\%\%b)
For /f "tokens=1-4 delims=:." \%\%a in ('echo \%time\%') do (set tm=\%\%a.\%\%b)
set bkupfilename=\%1 \%dt\% \%tm\%.bak
echo Backing up to file: \%bkupfilename\%


Produktion:


C:wamp>backup.bat
Backing up to file:  -08-2011 15.49.bak

Bedste reference


Når man analyserer output af systemkommandoer som date /t, er systemets lokalitet meget vigtig.


den første linje i scriptet udsteder kommandoen date /t og analyserer dens output. det spalter strengen på bestemte afgrænsere, hvilket er rummet (altså pladsen inden udgangen ") og skråstreg /. Det tager derefter 2 til 4 elementer fundet og tildel dem til variabler \%a, \%b og \%c.


Hvis du skriver date /t på din konsol, vil du se output og forstå, hvorfor scriptet ikke virker ...



  • Det system, som denne kommando blev skrevet på, anvendte amerikansk datoformat (måned-dag-år),

  • på mit system, der bruger europæisk datoformat (dag-måned-år), fungerer scriptet men inverterer måneden og dagen.



Jeg formoder, at på din system er ouput'en af ​​kommandoen date /t forskellig på grund af dine systemindstillinger. du bliver nødt til at ændre dit script for at overholde disse indstillinger.


(Husk også, at denne type script ikke er bærbar: en anden bruger, der bruger en anden lokalitet, støder på samme slags problemer)