Gå til innhold

Bytte filnavn til dagens dato?


Anbefalte innlegg

Driver og ordner noen enkle sikkerhetskopieringskript i DOS. I den sammenheng skulle jeg gjerne hatt muligheten til å skifte på navnet på en zipfil slik at den inneholder datoen skriptet kjøres.

 

Altså at "min_backup.zip" blir "min_backup_20070921.zip". Er dette mulig å få til i DOS?

 

Edit: Driver egentlig ikke særlig med programmering, men får stort sett til enkle DOS-ting selv, da.

Endret av Ratleto
Lenke til kommentar
Videoannonse
Annonse
Skal den nye fila ikke være en kopi, men erstatte den gamle så bruker du selvsagt bare move der hvor du ellers bruker copy.

 

vet. det er et par alternativer til copy i det scriptet avhengig av hva trådstarter skal gjøre.

9541658[/snapback]

 

Jupp, jeg regnet også med at du var klar over det, men ville bare opplyse trådstarter om at det faktisk var så enkelt, så det var ikke rettet mot deg. :)

Lenke til kommentar

da må du dele opp datoformatet og sette det sammen i norsk/europeisk format. det kan for eksempel gjøres slik:

 

@echo off
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B 
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B 
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B 
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B 
SET date=%dd%%mm%%yyyy%

echo %date%

pause

Lenke til kommentar

Takker for skriptet, men det funka ikke helt.

 

Kjører jeg skriptet, får jeg følgende output:

 

Legger jeg til:

ren test.txt test_%date%.txt

 

så får jeg samme output, og filen blir hetende "test_på..txt".

 

Har du tid og mulighet til å rydde i skriptet? Jeg MÅ ikke ha datoformatet slik jeg ønsker det, men det hadde blitt penere. :)

Lenke til kommentar
@echo off
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B 
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B 
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B 
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B 
SET date=%dd%%mm%%yyyy%

::echo %date%

copy test.txt "test%date%.txt

pause

Lenke til kommentar

Nok en gang, tusen takk for svar - og det et meget kjapt et. :)

 

Men. Hm. Rart. Det fungerer fortsatt ikke her. Eneste som skjer, er at jeg får en ny fil ved navn "testpå..txt".

 

Det er ikke noe jeg må gjøre når jeg lager bat-fila eller skrive i bat-fila som du bare antar at jeg vet? Jeg kjører bare fila slik du har laget den, i alle fall. Har norsk XP Pro.

Lenke til kommentar

det var forskjellig datoformat på norsk og engelsk versjon som lagde feilen.

 

@echo off
echo %date%
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B 
FOR /F "TOKENS=1,2 eol=/ DELIMS=." %%A IN ('DATE/T') DO SET dd=%%A 
FOR /F "TOKENS=1,2 eol=/ DELIMS=." %%A IN ('DATE/T') DO SET mm=%%B 
FOR /F "TOKENS=2,3 eol=/ DELIMS=." %%A IN ('DATE /T') DO SET yyyy=%%B 
SET date=%dd%%mm%%yyyy%

copy test.txt "test%date%.txt

::pause

Lenke til kommentar

Takker og bukker. :)

 

Jeg fikset på datoen slik at det ble YYYYMMDD, men da dukker det opp et mellomrom mellom YYYY og MM i filnavnet, altså "test2007 0924.txt". Kan ikke se noen grunn til det i koden her, men...

 

@echo off

echo %date%

FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B

FOR /F "TOKENS=1,2 eol=/ DELIMS=." %%A IN ('DATE/T') DO SET dd=%%A

FOR /F "TOKENS=1,2 eol=/ DELIMS=." %%A IN ('DATE/T') DO SET mm=%%B

FOR /F "TOKENS=2,3 eol=/ DELIMS=." %%A IN ('DATE/T') DO SET yyyy=%%B

SET date=%yyyy%%mm%%dd%

copy test.txt "test%date%.txt

Endret av Ratleto
Lenke til kommentar

her har du noe som er mye lettere:

Date er YYYYMMDD

copy test.txt %date:~6,4%%date:~3,-5%%date:~0,-8%.txt

 

for senere endring:

%date:~6,4% = år

%date:~3,-5% = mnd

%date:~0,-8% = dag

 

Du kan sette punktum eller hva du vil mellom disse...

 

edit: kan få med klokkeslett også hvis du ønsker det...

Endret av aklla
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å
×
×
  • Opprett ny...