Batch file
Napsal: 06 zář 2018, 15:03
Nazdar všem.
Není tu nějaký znalec "programování" v batch souborech?
Potřebuji spustit RAR tak, aby mi zabalil soubory *.dbf z minulého měsíce.
Tak jsem myslel, že napíšu krátký "baťák", kde:
1. Načtu aktuální měsíc a rok
2. Odečtu měsíc (a případně rok), 1. den tohoto odečteného měsíce od 00:00:00 hod bude spouštěcí čas pro RAR
3. Spustím RAR s přepínačem -ta<vypočtené datum>
Ale skončil jsem skoro dříve, než jsem začal. Rok umím odečíst, ale "zaboha" neumím odečíst měsíc, a to ani přímým odečtním 1 od měsíce (tak jak mi to funguje u roku, tak ani porovnáním aktuálního měsíce a např. čísla 9 (nebo 09).
Netušíte někdo, jak na to?
Takhle vypadá ten BAT soubor:
--------------------------------------------------------------------------------
cls
@echo off
set "_year=%date:~9,4%" rem OK
set "_month=%date:~6,2%" rem OK
set "_day=%date:~3,2%" rem OK
set "_hour=00" rem OK
set "_minute=00" rem OK
set "_second=00" rem OK
set /a "_lastyear =%_year% -1" rem OK
set /a "_lastmonth =%_month% -1" rem nefunguje
@echo on
echo %_year%
echo %_lastyear%
echo %_month%
echo %_lastmonth%
@echo off
if %_month% == 9 set "%_lastmonth%=8" rem nefunguje
@echo on
echo %_month%
echo %_lastmonth%
pause(0)
--------------------------------------------------------------------------------
Není tu nějaký znalec "programování" v batch souborech?
Potřebuji spustit RAR tak, aby mi zabalil soubory *.dbf z minulého měsíce.
Tak jsem myslel, že napíšu krátký "baťák", kde:
1. Načtu aktuální měsíc a rok
2. Odečtu měsíc (a případně rok), 1. den tohoto odečteného měsíce od 00:00:00 hod bude spouštěcí čas pro RAR
3. Spustím RAR s přepínačem -ta<vypočtené datum>
Ale skončil jsem skoro dříve, než jsem začal. Rok umím odečíst, ale "zaboha" neumím odečíst měsíc, a to ani přímým odečtním 1 od měsíce (tak jak mi to funguje u roku, tak ani porovnáním aktuálního měsíce a např. čísla 9 (nebo 09).
Netušíte někdo, jak na to?
Takhle vypadá ten BAT soubor:
--------------------------------------------------------------------------------
cls
@echo off
set "_year=%date:~9,4%" rem OK
set "_month=%date:~6,2%" rem OK
set "_day=%date:~3,2%" rem OK
set "_hour=00" rem OK
set "_minute=00" rem OK
set "_second=00" rem OK
set /a "_lastyear =%_year% -1" rem OK
set /a "_lastmonth =%_month% -1" rem nefunguje
@echo on
echo %_year%
echo %_lastyear%
echo %_month%
echo %_lastmonth%
@echo off
if %_month% == 9 set "%_lastmonth%=8" rem nefunguje
@echo on
echo %_month%
echo %_lastmonth%
pause(0)
--------------------------------------------------------------------------------