Gå til innhold

Anbefalte innlegg

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
Videoannonse
Annonse

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 :w00t:

Endret av aklla
Lenke til kommentar
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

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 av pumpy
Lenke til kommentar
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å.

 

:thumbup:

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...