Ennekun hakkaan päätäni seinään, niin kertokaa ihmeessä jos joku on tälläisen jo tehnyt.
Tiettyyn kansioon ilmestyy tiedosto satunnaisesti, kun tiedosto ilmestyy pitäisi se nimetä uudelleen. Eli, verrataan kahta tiedostoa ja jos tiedosto on edellisestä eroava (aikaleima tai sisältö) nimetään se uudelleen.
Mikä lie helpoin tapa toteuttaa moinen?
Edit. Eiku kieli oliki VBS...
Heippa hoomax!
jutska menee esim. näin...luo C: -aseman juureen hakemisto: MyFolder, luo hakemistoon tavallinen tekstitiedosto ja nimeä se esim. 001A.dat Copy/Pasteta oheinen scripti muistioon ja tallenna nimellä MyMonitor.vbs
luo sitten samaisesta scripti-tiedostosta pikakuvake ja siirrä se (XP-nuotit) Käynnistä -> Kaikki ohjelmat -> Käynnistys - kansioon...boottaa kone ja testaa kopioimalla jokin tekstitiedosto C:\MyFolder-kansioon, tsekkaa kansioon uudestaan ja avaa muistiolla tiedosto 001A.dat...
MyMonitor.vbs:
Main Sub Main() Do WScript.Sleep(5000) CheckFolder Loop End Sub Sub CheckFolder() Set fso = CreateObject("Scripting.FileSystemObject") Set myFolder = fso.GetFolder("C:\myFolder") If myFolder.Files.Count > 0 Then Dim item, data() Dim i: i = -1 For Each item In myFolder.Files i = i + 1 ReDim Preserve data(1, i) data(0, i) = item Set file = fso.GetFile(item) data(1, i) = file.DateLastModified Next If UBound(data, 2) > 0 Then If data(1, 0) <> data(1, 1) Then Set file = fso.GetFile(data(0, 0)) file.Delete fso.CopyFile data(0, 1), data(0, 0) Set file = fso.GetFile(data(0, 1)) file.Delete End If End If Erase data End If Set fso = Nothing End Sub
Kiitos Nea.
Miten tuota pitäisi muokata, että uuden tiedoston sisältö kopioitaisiin vanhaan tiedostoon jatkoksi? Eli, mitään kansioon ilmestyttä dataa ei katoaisi? Nythän kansiossa olevan tiedoston sisältö on viimeisimmän kansioon ilmestyneen tiedoston sisältö...
Oma scpitaustaitoni on vielä vähän hello world -tasoa...
Heippa taas hoomax!
tarvittava muokkaus on tässä...
'... If UBound(data, 2) > 0 Then If data(1, 0) <> data(1, 1) Then Dim f, r Set f = fso.OpenTextFile(data(0, 1), 1, False) r = f.ReadAll(): f.Close Set file = fso.GetFile(data(0, 1)) file.Delete Set f = fso.OpenTextFile(data(0, 0), 8, False) f.Write r: f.Close Set f = Nothing End If End If '...
Mihis tuohon saatas vielä uusi rivi aina tiedon kirjotuksen jälkeen?
f.Write r: vbCrLf f.Close ?
Heippa taas hoomax!
'... Dim alku, loppu alku= "[alkaa:" & Now & "]" & vbCrLf loppu = vbCrLf & "[loppuu:" & Now & "]" & vbCrLf f.write alku: f.Write r: f.Write loppu: f.Close '...
Kiitos Nea, tällä saan juuri sen mitä hain... pienillä outputin muutoksilla ;)
Mites tuota pitäs muuttaa jos haluaisin jokaisesta muutoksesta oman tiedostonsa?
hoomax kirjoitti:
Kiitos Nea, tällä saan juuri sen mitä hain... pienillä outputin muutoksilla ;)
Mites tuota pitäs muuttaa jos haluaisin jokaisesta muutoksesta oman tiedostonsa?
Tallennat joka muutoskerralla sen eri nimiseen tiedostoon? O_o
Eikun, että tuo scipti tallentaisi aina kirjottaessaan tiedostoon uuden tiedoston.
Aihe on jo aika vanha, joten et voi enää vastata siihen.