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 SubKiitos 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.