» »

Problem, kako napisat *.bat datoteko

Problem, kako napisat *.bat datoteko

twosocks ::

Zanima me, kako naj s pomočjo .bat datoteke naredim krajšo skripto za backup.

Zadani cilj:
ko zaženem *.bat, da se mi kreira folder z današnjim dnem v imenu, ter se mi v ta folder presnamejo določeni fajli.

hvala za vse odgovore

p.s.: kako se pa v C-ju dobi ven sistemski cas? A ce s C-jemvim programom kaj kopiram, lahko pride do kakih napak? Recimo če mam *.dbf al pa kaj podobnega, se prenesejo pravilno (glede na ASCII).
*------------------------------------------------------------------*
Ni podpisa
*------------------------------------------------------------------*

Kekec ::

A nebi raje uporabil kak Backup software, bat datoteke nevem ce so glih prave resitve!

za tisti v C-ju mas pa:
GetLocalTime al pa GetSystemTime

andrej ::

za kateri sistem to rabis? pod w2k poglej help za ntbackup.exe

twosocks ::

Sedaj mi ob izklopu programa za baze mi zažene bat datoteko, kjer mi skopira pač v določen direktorij (vedno isti) fajle. Jaz bi rad da mi za vsak dan naredi novega, da imam po dnevih backup in da se mi ne povozi.

Imam na tej mašini win98SE lp
*------------------------------------------------------------------*
Ni podpisa
*------------------------------------------------------------------*

Senitel ::

Seveda bi se dalo naredit v C-ju...

twosocks ::

Ja v C-ju se da, sam nimam niti kompajlerja doma...sm mislu na simpl način...
*------------------------------------------------------------------*
Ni podpisa
*------------------------------------------------------------------*

YouR MaMa ::

za compilere poglej tu

povej mi direktorije, pa file .. pa ce bo kaj casa ti bom naredo programcek ..

simon ::

Bat fileti pod okni so ena hudo infantilnih zadev in ni mi jasno kako je lahko folk placeval M$ za taksno bedo.

Kako ustvaris direktorij z trenutnim datumom bi slo na tale (nagravzn ampak dela) nacin:


@echo off
echo @prompt set datum=$d> tmp$$$.bat
%comspec% /c tmp$$$> tmp2$$$.bat
call tmp2$$$
echo @mkdir %%2%% >tmp3$$$.bat
call tmp3$$$.bat %date_%
del tmp$$$.bat
del tmp2$$$.bat
del tmp3$$$.bat

datum dobis v spremenljivko datum, ki pa zgleda takole "Mon 2001-01-03", zato je pomembno, da klices nek drug bat fajl in mu podas kot argument to spremenljivko. Ta drug fajl bo razumel spremenljivko kot 2 parametra, zato v mkdiru uporabis %2%.

Naprej si lahko naredis bat filet ki ti skopira vse bekapirne fajle v direktorij s tem da je direktorij drugi parameter programu in ga klices za echo @mkdir... vrstico z call backup.bat %datum%. Upam da ti bo pomagalo

twosocks ::

Uau...neki tazga sem iskal...hvala Simon.
khm..ni mi čisto jasno...da dobim drugi del datuma, moram uporabiti še kak bat fajl...?

V direktoriju c:\backup\trenutno\ imam pač shranjene fajle za backup. Rad pa bi, da mi vsak dan naredi v folder c:\backup\ po datumih folderje 2001-01-03, 2001-02-03 2001-03-03 itd...

In torej naj napišem recimo v backup.bat (ki ga dam v c:\backup\):

@echo off
echo @prompt set datum=$d> tmp$$$.bat
%comspec% /c tmp$$$> tmp2$$$.bat
call tmp2$$$
echo @mkdir %%2%% >tmp3$$$.bat
call tmp3$$$.bat %date_%
del tmp$$$.bat
del tmp2$$$.bat
del tmp3$$$.bat

toda kak je potem tist sistem, da kličem z argumentom bat fajl pa vzamem sam drugi del? To si pa napisal spodaj, pa nisem razumel...A se ti da mogoče še za moj dotični primer predelat tole "kodo"?


hvala
*------------------------------------------------------------------*
Ni podpisa
*------------------------------------------------------------------*

simon ::

Sori ker sem bolj slabo razlozil :(

ti samo naredi v c:backup skript kopiraj.bat z vsebino:

copy c:filetzabekapirat1 %2%
copy c:filetzabekapirat2 %2%
copy c:filetzabekapirat3 %2%

itd za vse filete ki jih zelis kopirat. (zamenjaj c:filetzabekapirat[n] z imeni in potmi tistih zadev, ki bi jih zelel bekapirati)
potem pa naredi v c:backup se filet bekap.bat in vanj skopiraj tole:

@echo off
echo @prompt set datum=$d> tmp$$$.bat
%comspec% /c tmp$$$> tmp2$$$.bat
call tmp2$$$
echo @mkdir %%2%% >tmp3$$$.bat
call tmp3$$$.bat %datum%
call kopiraj.bat %datum%
del tmp$$$.bat
del tmp2$$$.bat
del tmp3$$$.bat

ta bekap.bat daj v tisti nadomestek crona (task ??) da se ti zazene vsak dan
to bo moralo zadostovati :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

program za pomoč pri tiskanju 200+pdf dokumentov

Oddelek: Pomoč in nasveti
252303 (1355) HotBurek
»

skripta.sh--> linux

Oddelek: Programiranje
51933 (1798) mico28
»

[bat datoteke] Trenutni datum in ura

Oddelek: Programiranje
112505 (2262) darkolord
»

linux in particije

Oddelek: Operacijski sistemi
141640 (1375) Brane2
»

slike

Oddelek: Izdelava spletišč
81040 (942) anubisas

Več podobnih tem