» »

Kako bi napisal .bat file, da bi ...

Kako bi napisal .bat file, da bi ...

AtaStrumf ::

Kako bi napisal .bat file, da bi mi iz definiranega mesta na disku, recimo c:\Database\yyyyy.xxx datoteko yyyyy.xxx shranil na CD-RW (formatiran z InCD-jem, da se obnaša kot disketa) v pekaču s črko E:\ samo ne pod istim imenom (ker bi mi prepisal starega) ampak da bi dodajal zraven zaporedno številko npr. yyyyy001.xxx, potem yyyyy002.xxx itd.

Eno bazo bi rad vsak dan arhiviral, samo če se prepisuje pol CD-RW po kakem mesecu crkne (že drugi zapored) kar totalno sux. Zadeva je drugače čist majhna, ampak glih tolk da ne pride na disketo ;(.

Če obstaja kak drug sistem za isto opravilo se tudi priporočam, za nasvet, mora pa bit enostavno za končnega uporabnika, tako z enim klikom, ker drugače -- you know: can't teach an old dog new tricks :D.

Vesoljc ::

mora pa bit enostavno za končnega uporabnika, tako z enim klikom, ker drugače -- you know: can't teach an old dog new tricks.

mora bit idiot proof se temu reče :)

z cd-ja bi moral potegnit zadnjo cifro (ime file-ta) in jo potem povečat za eno...
kako točno? ummm...:\
Abnormal behavior of abnormal brain makes me normal...

AtaStrumf ::

Točno tako biti mora idiot proof! Any ideas?

Thomas ::

Man muss immer generalisieren - Carl Jacobi

Blup ::

Kaj pa če bi si omislu USB disk?

Blup
:\

BigWhale ::

Thomas,

V enem zglednem unix shellu to napises v nekaj vrsticah... Ne pa dvesto tistih procentov... ;)

AtaStrumf ::

USB disk ima precej manjšo kapaciteto in je predvsem precej dražji od enga CD-RW CD-ja in ima pravtako omejeno števio pisnja/brisanja. Vsaj tako sem slišal :)

Drugače pa hvala za link Thomas, samo problem, ker tudi sam razen copy, ren, CD itd. ne poznam kaj dosti DOS-ovih ukazov in ne razumem kaj točno piše v tem linku. A bi mi lahko copy/paste-al tist batch, ki naj bi delal to kar rabim. Jaz bi potem samo prilagodil pot in ime datoteke, ker kaj več je zame tema.

BigWhale ::

> A bi mi lahko copy/paste-al tist batch, ki naj bi delal to kar
> rabim. Jaz bi potem samo prilagodil pot in ime datoteke, ker kaj
> več je zame tema.

A ves, da bi se lahko vsaj malo potrudil... ;) Na tisti strani si imel vse podatke in prav lepo napisano in razlozeno tisto solato. :)

flashroyal ::

Zakaj pa nebi napisal npr takole?:

copy c:\Database\yyyyy.xxx e:\yyyyy%date%.xxx

pa se vedel bi kdaj???

Zgodovina sprememb…

AtaStrumf ::

BigWhale saj sem se potrudil kolkor sem zmogel ob 2 zjutraj (na pol koma) zdele bi se mi mogoče dalo kaj več, samo jaz nisem nikoli v življenju programiral (razen nekaj ZELO malega s srednji šoli - na farmacevtskem faxu nas namreč ne učijo ravno veliko o računalnikih), zato težko razumem te stvari, pa sem mislil, da bi mi on k to obvlada pač copy/paste-al tist del, ki je pravi, ker tam je več različnih batov in vsi verjetno niso pravi.

Tale ideja od Flashroyal-a se mi zdi pa super. Tudi sam sem imel v mislih da bi dodal datum poleg imena datoteke, samo nisem vedel kako se to napiše. Važno je namreč samo da dobi avtomatično novo ime vsakič ko snema, da ne presnemava. Moram probat pa javim. Pa bom dal datum spredaj, da jih potem enostavno razvrsti, samo upam, da ima ameriški sistem LLLL-MM-DD oz. če nima, a se da to kako nastavit?

flashroyal ::

Lokalizacija sistema

AtaStrumf ::

A samo preko lokalizacije? Bom pogledal! Drugače sem pa že nekaj probaval pri sebi, pa ni delovalo - sploh, kar je FUL čudno. Bom probal še malo pa se tipkamo. Thanx!

AtaStrumf ::

Nope, tale fora z %date% mi ne deluje. Če izbrišem %date% pol mi naredi kopijo z istim imenom, z %date% pa se ne zgodi nič. A je mogoče kaka drugačna sintaxa/ukaz za datum?

Thomas ::

Flashroyalova rešitev ne deluje, ker imaš po tanovem ime dneva pri datumu, potem pa presledek. Se bojim, da boš moral prežvečiti tisto, za kar sem ti dal link. Lahko bi naredil tudi s "if exist file call sub.bat" - ampak v osnovi se zvede na isto.
Man muss immer generalisieren - Carl Jacobi

Lith ::

kaj pa če bi recimo uporabil VBS, jaz imam npr. tole (za arhiviranje ene baze s programom naredim kar ZIP fajl kjer je vse skupaj noter), tistih par REM vrstic je zato, da sem lahko sledil kaj počne, drugače pa je help zato na M$ strani (nekje) in ven vrže tako datoteko -> 2003-11-14_Pet_[18.44h]_arhiv.zip < -- (če poženeš čez eno minuto, bo pač že drugačna):

rem *************************** zacetek *************************************************
Set WshShell = WScript.CreateObject("WScript.Shell")

Datum= Now
Dim Dnevi(6)
Dnevi(0)= "Ned"
Dnevi(1)= "Pon"
Dnevi(2)= "Tor"
Dnevi(3)= "Sre"
Dnevi(4)= "Cet"
Dnevi(5)= "Pet"
Dnevi(6)= "Sob"
rem wscript.echo "Danes je: " &Year(Now)&"-"&Month(Now)&"-"&Day(Now) &", " &dnevi(Weekday(Datum)-1) &" ["&Hour(Now)&"."&Minute(Now)&"h]"

xmesec = nula(Month(Now))
xdan= nula(Day(Now))
xura= nula(Hour(Now))
xMinute= nula(Minute(Now))
datum= Year(Now)&"-"& xmesec& "-"& xDan & "_"&dnevi(Weekday(Datum)-1)& "_"&"["&xura&"."& xMinute&"h]"& "_"
dirdatum= Year(Now)&"-"& xmesec& "-"& xDan
rem Wscript.Echo "Danes je: " &Year(Now)&"-"& xmesec& "-"& xDan &", " &dnevi(Weekday(Datum)-1) &" ["&xura&"."& xMinute&"h]"

Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists("C:\arhiv\"&dirdatum) Then
Set objFolder = objFSO.GetFolder("C:\arhiv\"&dirdatum)

Else
rem Wscript.Echo "Mapa > "& dirdatum& " < še NE obstaja. Narejena bo nova !"
Set objFolder = objFSO.CreateFolder("C:\arhiv\" &dirdatum)
End If

rem ***************** F U N K C I J A ********************
WshShell.Run "7z a -tzip c:\arhiv\"&dirdatum&"\"&datum&"arhiv.zip ""mapa ki jo arhiviram""\* -r"
Function nula(t)
nula = t
If Len(t) = 1Then
nula = "0"&t
End If
End Function
rem ******************************************* konec ****************************************


Upam, da boš lahko kaj bolj uspešen...
LP
¤ black holes rule; I like the speed, speed kills ¤

AtaStrumf ::

OK sem si copy pasteal v beležnico in shranil kot vbs in popravil pot do datoteke, samo ni našel datoteke, kar je dokaj logično ker sploh nisem našel kaj tu definira KATERA datoteka naj se arhivira. Mi je pa naredil mapo z pravilnim datumom.

pot do moje testne datoteke je D:\images\a1.srt

Aja pa jaz bi rabi, da se mi arhiv naredi nekam drugam na E: recimo (CD-RW v pekaču). A je to izvedljivo s to kodo?

Zgodovina sprememb…

zdravc ::

Jaz za take namene uporabljam Mob (May Own Backup). Je Freware. Sedaj so ga ze zamenjali z novejso verzijo Tukaj. Deluje pa tako, da zipa datoteke, ki jih sam dolocis, kot izhod pa lahko dolocis, da kreira direktorij z datumom.
Na disku imam posebno particijo za varovanje, kjer se mi kreirajo direktoriji za vsako varovanje. Te potem vsake nekaj časa varujem še na CD. Lako pa bi to izvajal dnevno, kot v tvojem primeru.
kdor zna pa žih

AtaStrumf ::

Zanimiv programček zdravc, ampak jaz rabim, da je idiot proof. Mislim, da je mal preveč zakomplicirano za tisto tajnico :D. Če ne zna niti drag & drop skopirat na CDR, pol ... Najraje bi kak .bat file, da ga samo dvoklikne in je. VBS-ji so že problematični z vidika protivirusnih programov. Vsaj pri meni moram posebej dovoliti, da se izvede tista skripta, čeprav mislim, da pri uni tajnici ni nobenega AV progija.

A se damogoče s tem tvojim MOB-om naredit eno exe datoteko, ki bi avtomatično backup-ala vedno na enak način, skonfiguriran na začetku?

tomaz_v ::

Neko podobno rešitev sem tudi jaz imel v stari firmi (dokler je nisem menjal) :D
Princip delovanje pa je bil sledeč:
- definiral sem task ob določeni uri
- ta task je pognal eno navadno BAT datoteko katera pa pognala en COM file ki je kreiral drugo BAT datoteko
- ko se je končal COM je ta ista prva datoteka pognala to novo kreirano datoteko v kateri je bil ukaz za kopiranje nečesa (veliko direktorijev) v en drug direktorij z novim imenom in datumom (Arhiv20031118)
- in potem samo še exit in zadeva je bila narejena

Ampak na žalost nimam več teh datotek ker so ostale v ex-firmi patudi ne vem če sploh še obstajajo, ker je bil "moj naslednjik" bolj lesen pri vseh teh zadevah.

Mislim pa da sem ti dal eno idejo, ki je zagotovo idot proof.
Tomaz.V
____________________________________
Long and prosper life. (by Mr. Spock)

AtaStrumf ::

Khm ni slaba ideja, samo povej mi kako naredim bat, ki bo shranjeval v mapo, ki še ne obstaja in za katero ne more vedeti kako se bo imenovala. Ne pozabit, da govorite z farmacevtom in ne računalničarjem :8).

Lith ::

aha, itak da moj VBS naredi tut poddirektorij, he he, samo uporablja 7zip zastonjski ZIP program za arhiviranje, huh, tako bi pa to tebi izgledalo:

rem ***************** F U N K C I J A ********************
WshShell.Run "7z a -tzip e:\"&dirdatum&"\"&datum&"arhiv.zip ""D:\images\a1.srt""\* -r"
.
.

to pa je tako kot želiš ti imet na E:\... en ZIP fajl z imenom 'datum'_arhiv.zip

Samo tist 7zip program snemi z interneta in daj v D:\images\ noter 7z.exe in skripto.VBS, da bo arhiviralo
¤ black holes rule; I like the speed, speed kills ¤

zdravc ::

Mob podpira command line. Prvič moraš samo pripraviti job, lahko jih je več, nato pa aktivacijo vpišeš v bližnico na namizju. Dotična oseba mora samo še klikniti na bližnico in počakati, da konča.
kdor zna pa žih

AtaStrumf ::

@Lith: Sem popravil in sedaj ni več errorja ker sedaj najde program 7z samo ta program se mora inštalirat (ni samo en exe, ki bi ga v mapo vrgel) a sem ga inštaliral nekam drugam (tja kjer pač vse progije inštaliram) in potem samo prekopiral njegove inštalacijske file v d:\Images, tako da je lahko problem v tem, ker nova mapa k nastane je še vedno prazna :'(.

A se da napisat skripto brez da zazipa in da samo prekopira v mapo z datumom v imenu, datoteka pa ohrani svoje ime (lahko pa ima tudi sama datoteka dobi datum spredaj)?

@zdravc:torej se da poenostavit do skrajnosti. Odlično! Bom malo probal, kaj mi bo ratalo.

AtaStrumf ::

Evo vam fantje .bat, ki naredi poleg imena datoteke tudi datum. Sicer ne v formatu kot bi si jaz želel, a saj se da v raziskovalcu z enim klikom posortirat po datumu. Glavno da dobi vsakič novo ime!

Sicer je datoteka in pot čist experimentalne narave, ampak sintaxa je jasna in enostavna:

set date
cd\
cd D:
cd images
copy a1.srt D:\Images\a1"%date%".srt


Gre za izvedenko tega kar je predlagal flashroyal, samo da je pozabil na narekovaje in set date. Pogruntal sem čist naključno, pač probavaš vse možne kombinacije, ki ti pridejo na pamet :).


Vredno ogleda ...

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

BAT skripta za spremembo datuma stvaritve

Oddelek: Programiranje
8831 (576) konspirator
»

batch fajl iz txt (strani: 1 2 )

Oddelek: Programiranje
659772 (8433) b3D_950
»

Preprosta *.bat skripta

Oddelek: Programiranje
81216 (998) lopov
»

[bat datoteke] Trenutni datum in ura

Oddelek: Programiranje
112502 (2259) darkolord
»

virus problem

Oddelek: Pomoč in nasveti
14962 (849) DrSergioDJ

Več podobnih tem