Wolverin Skrevet 24. januar 2005 Del Skrevet 24. januar 2005 Jeg ønsker å få laget meg et script som skal gjøre følgende. Sjekke på en anngitt katalog, om det ligger en fil med en bestemt ending eller et bestemt navn. Eks. d:\test\fil.txt Hvis det ikke ligger noen fil der, så skal scriptet avsluttes. Hvis det ligger den forventede filen, så skal dato og klokkeslett leses ut på når filen ble laget. Så skal det kjøres en test mot dato og klokkeslett som er på datamaskinen. Hvis det er mer enn 59 minutter diff mellom dato og klokkeslett nå, og dato og klokkeslett da filen ble laget, så skal filen klippes ut og legges på en annen katalog. Eventuelt, så skal filen slettes om det er enklere. Dette scriptet skal kunne kjøres i scheduler programmet som er i Win2k, og skal kjøres en gang i timen, hver eneste dag. Noen som har peiling på åssen jeg skal klare å få til noe slikt? Jeg selv er helt blank. Lenke til kommentar
oaeide Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 hmm.....vet ikke om batch er tilstrekkelig her, men det kan jo hende noen som er skikkelig flinke på programmering titter innom og hjelper deg.. Lenke til kommentar
aklla Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 er ett problem å få når filen ble laget gjennom cmd, det er alt jeg trenger for å lage scriptet du trenger... Lenke til kommentar
Kirikiri Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 Det finnes en god del ressurser hos Microsoft: http://www.microsoft.com/downloads/results...&DisplayLang=en Særlig Do it yourself script center kit kan være kjekk. http://msdn.microsoft.com/downloads/list/webdev.asp Kirikiri Lenke til kommentar
aklla Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 (endret) du kan ikke ha det slik at den bare kopierer det?? tviler på at du får tiden ut av en fil gjennom batch.... kan du ikke lagre filen som klokkeslettet, er mulig jeg får mekket noe da... edit: er mulig jeg har scriptet om en stund Endret 25. januar 2005 av aklla Lenke til kommentar
aklla Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 nei, det går ikke, jeg må få tiden fra ett annet sted hvis du skal ha det i bat.... Lenke til kommentar
Wolverin Skrevet 26. januar 2005 Forfatter Del Skrevet 26. januar 2005 nei, det går ikke, jeg må få tiden fra ett annet sted hvis du skal ha det i bat.... Hei. Jeg ble tipset om denne siden. Batch script Det var en kompis av meg som sa han hadde brukt en del av koden her i forbindelse med en skole oppgave. Det scriptet finner ut av noe dato og tid greier, men jeg forstår ikke nok av det til å si om det kan være det du trenger for å kunne lese ut. Limer inn koden i scriptet nedenfor. @ECHO OFF REM * MODIFIED.BAT REM * Check if specified file was created or modified today REM * Written by Rob van der Woude REM * Needs write access to current directory; or add fully qualified REM * path to files CURRENT.BAT and its language dependent versions, REM * and make sure its path is specified in the PATH variable. REM * File name should be specified IF "%1"=="" GOTO Syntax IF NOT EXIST %1 GOTO Syntax REM * Send DIR output for specified file to primary temporary REM * batch file to get the file's creation or modification date DIR %1 | FIND /I "%1" > %TEMP%.\~ISMODIF.TMP ECHO.>> %TEMP%.\~ISMODIF.TMP TYPE %TEMP%.\~ISMODIF.TMP | TIME | FIND /I "%1" > %TEMP%.\~ISMODIF.BAT REM * Create secondary temporary batch files to be called by primary ECHO SET CHKDATE=%%4>ENTER.BAT REM * For Dutch DOS versions ECHO SET CHKDATE=%%5>VOER.BAT ECHO SET CHKDATE=%%6>TYP.BAT CALL %TEMP%.\~ISMODIF.BAT REM * Send DIR output for temporary batch file to itself to get today's date DIR %TEMP%.\~ISMODIF.BAT | FIND /I "~ISMODIF.BAT" > %TEMP%.\~ISMODIF.TMP ECHO.>> %TEMP%.\~ISMODIF.TMP TYPE %TEMP%.\~ISMODIF.TMP | TIME | FIND /I "~ISMODIF.BAT" > %TEMP%.\~ISMODIF.BAT REM * Create secondary temporary batch files to be called by primary ECHO SET NOWDATE=%%4>ENTER.BAT REM * For Dutch DOS versions ECHO SET NOWDATE=%%5>VOER.BAT ECHO SET NOWDATE=%%6>TYP.BAT CALL %TEMP%.\~ISMODIF.BAT REM * Compare dates and display result IF "%NOWDATE%"=="%CHKDATE%" ECHO %1 was created or modified today (%NOWDATE%) REM * Clean up the mess DEL %TEMP%.\~ISMODIF.BAT DEL %TEMP%.\~ISMODIF.TMP DEL ENTER.BAT DEL VOER.BAT DEL TYP.BAT SET CHKDATE= SET NOWDATE= GOTO End :Syntax ECHO MODIFIED.BAT ECHO Check if specified file was created or modified today ECHO Written by Rob van der Woude ECHO. ECHO. ECHO Usage: %0 filename :End Takker for all hjelp til nå. Lenke til kommentar
aklla Skrevet 26. januar 2005 Del Skrevet 26. januar 2005 takk, jeg skal se på den straks, gir det ut dato så kan jeg bruke det Lenke til kommentar
Wolverin Skrevet 26. januar 2005 Forfatter Del Skrevet 26. januar 2005 Takk. Er spennende å se om du får til noe. Lenke til kommentar
aklla Skrevet 26. januar 2005 Del Skrevet 26. januar 2005 (endret) wohoo, skal legge ut scriptet om maks 10 min vi sier litt mer vi, men det er på vei... Endret 26. januar 2005 av aklla Lenke til kommentar
Wolverin Skrevet 26. januar 2005 Forfatter Del Skrevet 26. januar 2005 Cool. Venter jeg. Lenke til kommentar
GeirGrusom Skrevet 26. januar 2005 Del Skrevet 26. januar 2005 Det går an å bruke VB Script også, som er bygget inn i Windows nu for tiden. Lenke til kommentar
aklla Skrevet 26. januar 2005 Del Skrevet 26. januar 2005 tror det er bedre, tviler på at det faktisk er mulig med batch, fikk ikke satt variablene slik de skulle bli satt Lenke til kommentar
Wolverin Skrevet 26. januar 2005 Forfatter Del Skrevet 26. januar 2005 Det går an å bruke VB Script også, som er bygget inn i Windows nu for tiden. Okei. VBScript høres bra ut det. Bør jeg legge ut et tema på VB siden da eller?? Kan noen her VBScript? Lenke til kommentar
pumpy Skrevet 27. januar 2005 Del Skrevet 27. januar 2005 (endret) Dette vb-scriptet skulle gjøre jobben. For at scriptet skal kjøre må Windows Scripting Host være installert. Det finner du her Kopier så koden under inn i notisblokk og lagre filen med endelsen ".vbs". Denne filen kan nå startes som en kjørbar kommando. Dim fso fil="d:\test\fil.txt" Set fso = CreateObject("Scripting.FileSystemObject") If (fso.FileExists(fil)) Then if datediff("n",fildato(fil),date())< -59 then flyttfil(fil) End If Sub flyttfil(fil) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") tid= replace(CStr(Date()),".","")& "_" & replace(CStr(Time()),":","") fso.MoveFile fil, "d:\dump\fil_" & tid & ".txt" End Sub Function fildato(fil) Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFile(fil) fildato = f.DateCreated End Function Scriptet bruker dato og klokkeslett for å genere nytt filnavn når filen flyttes slik at hver fil blir unik. Endret 27. januar 2005 av pumpy Lenke til kommentar
Wolverin Skrevet 27. januar 2005 Forfatter Del Skrevet 27. januar 2005 Dette vb-scriptet skulle gjøre jobben. For at scriptet skal kjøre må Windows Scripting Host være installert. Det finner du her Kopier så koden under inn i notisblokk og lagre filen med endelsen ".vbs". Denne filen kan nå startes som en kjørbar kommando. Dim fso fil="d:\test\fil.txt" Set fso = CreateObject("Scripting.FileSystemObject") If (fso.FileExists(fil)) Then if datediff("n",fildato(fil),date())< -59 then flyttfil(fil) End If Sub flyttfil(fil) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") tid= replace(CStr(Date()),".","")& "_" & replace(CStr(Time()),":","") fso.MoveFile fil, "d:\dump\fil_" & tid & ".txt" End Sub Function fildato(fil) Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFile(fil) fildato = f.DateCreated End Function Scriptet bruker dato og klokkeslett for å genere nytt filnavn når filen flyttes slik at hver fil blir unik. Tusen takk. Har nå lastet ned den exe filen, og skal teste scriptet ditt på min bærbar pc med Windows 2000 installert i morgen på jobb. Har ikke pcen for hånden nå. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå