Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Datum a čas v názvu souboru

Potřebuji generovat název takto
2021-09-04 - 08.53.43.txt

1) v případě podobných logů název souboru s mezerarami nedoporučuju, raději kombinovat pomlčky a dolní podtržítka. mj. nesmíš zapomenout pokaždé název souboru (proměnné) uzavřít do uvozovek.
tu chybu tam máš taky: command > %LOGFILE%

2) natvrdo předpokládáš české prostředí v konzoli, což není nejskvělejší nápad. na pc s angličtinou to vyrobí nesmysl.
taky napevno předpokládáš jen letošní rok. proč, plánuješ umřít?

3) starší systémy běžně vypisovaly proměnnou %date% i se zkratkou dne. w10 v tom mají podle jazyka trochu chaos. proto ten skript začíná tak, že si odřízne posledních 10 znaků jen s číselnou částí, viz příklady v původních zaremovaných komentářích.

4) pokud používáš nastavení hodnoty proměnné bez závorek kolem set=..., dávej si bacha, ať řádek nekončí volnou mezerou, bude v proměnné taky.

:DATUM
 set rrrr=%date:~-4%
 set dddd=%date:~-10%
 set tttt=%time:~0,8%
:EN
 set mm=%dddd:~0,2%
 set dd=%dddd:~3,2%
:CZ
 echo %date% | find "." >nul
  if not errorlevel 1 (set mm=%dddd:~3,2%) && (set dd=%dddd:~0,2%)
:HMS
 set hh=%tttt:~0,2%
 set min=%tttt:~3,2%
 set ss=%tttt:~-2%
  if "%hh:~0,1%"==" " (set hh=0%hh:~1,1%)
 (set logfile=%rrrr%-%mm%-%dd% - %hh%h%min%.%ss%.txt) & REM jak jsem psal, tento tvar s mezerami nedoporucuju
:POUZITI
 nejaky_tvuj_command_treba_echo_%promenna% > "cesta\%LOGFILE%"
 pause

dodělal jsem tam i vteřiny, pro orientaci hodin je ponechán oddělovač "h", tečkou ho zvládneš nahradit.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny