Avatar billede korsg_ Nybegynder
17. januar 2005 - 11:10 Der er 11 kommentarer og
1 løsning

Xcopy logfile hjælp + Auto sletning af mappe

Jeg bruger følgende script:

xcopy \\1.1.1.1\mappe\*.tps C:\Backup\By\"%date%"\*.* /Y /S /I

Og skal have tilføjet en kommando som giver laver en logfil under destinations mappen

Sådan som jeg har forstået det skal man bruge denne kommando:
>c:\Backup\By\"%date%"\logfile.txt

Det eneste problem er at batch filen siger at den angivne sti ikke findes, selvom jeg har brugt /I kommandoen ? Hvordan kan det være ?

Mit andet spørgsmål går ud på at jeg laver backup med ovenstående script, og hver fjortens dag skal dag 1 overskrives, så der hele tiden ligger fjorten dages backup.. hvordan laver jeg et script som slettet en fjorten dag gammel backup?
Avatar billede ejvindh Ekspert
17. januar 2005 - 11:37 #1
Det først problem skyldes nok at der er kommet mellemrum eller en anden separator i date-variablen.

Angående 2. spørgsmål, så har jeg givet et bud på en måde man kan gøre det på i dette spørgsmål. Her ønskedes ganske vist kun 7 backups, men det kan nemt tilrettes. Især hvis du bruger mit andet forslag, hvor du blot skal ændre i 4. linie. Denne løsning løser også dit første spørgsmål. Men du får altså ikke mappen til at hedde datoen....

http://www.eksperten.dk/spm/562650
Avatar billede korsg_ Nybegynder
17. januar 2005 - 11:57 #2
Tak for svaret,men jeg har prøvet dit script men den siger 2* "Den angivne sti blev ikke fundet"

I mit tilfælde ser scriptet sådan ud:

@echo off
set kilde=\\1.1.1.1\dir*tps
set back=C:\Backup
If not exist antal.bat goto first
:videre
call antal.bat
goto nydag
:videre2
echo set nr=%nrny% >antal.bat
del %back%%nrny%\*.* /f /s /q
rmdir %back%%nrny% /s /q
xcopy %kilde%*.* %back%\%nrny%\*.* /y /s
goto end

:first
echo set nr=sun >antal.bat
goto videre

:nydag
if %nr%==sun goto sund
if %nr%==mon goto mond
if %nr%==tue goto tues
if %nr%==wed goto wedn
if %nr%==thi goto thir
if %nr%==fri goto frid
if %nr%==sat goto satu

:sund
set nrny=mon
goto videre2

:mond
set nrny=tue
goto videre2

:tues
set nrny=wed
goto videre2

:wedn
set nrny=thi
goto videre2

:thir
set nrny=fri
goto videre2

:frid
set nrny=sat
goto videre2

:satu
set nrny=sun
goto videre2

:end
Avatar billede ejvindh Ekspert
17. januar 2005 - 12:11 #3
Jeg har rettet lidt til på det (indføjet og fjernet nogle backslahs'es, og rettet kildenavnet til, så det passer med din oprindelige angivelse. Muligvis har scriptet stadig problemer med de punktummer, der er i kilde-mappens navn, men prøv dette først, så ser vi evt. på det andet bagefter:

@echo off
set kilde=\\1.1.1.1\mappe\
set back=C:\Backup\
If not exist antal.bat goto first
:videre
call antal.bat
goto nydag
:videre2
echo set nr=%nrny% >antal.bat
del %back%%nrny%\*.* /f /s /q
rmdir %back%%nrny% /s /q
xcopy %kilde%*.tps %back%%nrny%\*.tps /y /s
goto end

:first
echo set nr=sun >antal.bat
goto videre

:nydag
if %nr%==sun goto sund
if %nr%==mon goto mond
if %nr%==tue goto tues
if %nr%==wed goto wedn
if %nr%==thi goto thir
if %nr%==fri goto frid
if %nr%==sat goto satu

:sund
set nrny=mon
goto videre2

:mond
set nrny=tue
goto videre2

:tues
set nrny=wed
goto videre2

:wedn
set nrny=thi
goto videre2

:thir
set nrny=fri
goto videre2

:frid
set nrny=sat
goto videre2

:satu
set nrny=sun
goto videre2

:end
Avatar billede korsg_ Nybegynder
17. januar 2005 - 12:29 #4
Tak igen,

Nu ser det ud til at virke, men jeg har lige et problem.. Jeg vil gerne have at antal.bat bliver oprettet under %kilde%.. men det syntes ikke at virke.. har du nogle forslag til det ?
Avatar billede korsg_ Nybegynder
17. januar 2005 - 12:35 #5
Ups nej mente self %back%
Avatar billede ejvindh Ekspert
17. januar 2005 - 12:37 #6
Det fixer vi nemt. Det ville gå helt af sig selv hvis scriptet afvikles fra %back%-mappen, men hvis du af forskellige grunde ikke ønsker dette, så tilføjer du bare %back% i de relevante linier. Sådan her (tallet til venstre skal ikke med, men angiver bare linie-nr. i scriptet ovenfor):
4 If not exist %back%antal.bat goto first
6 call %back%antal.bat
9 echo set nr=%nrny% >%back%antal.bat
15 echo set nr=sun >%back%antal.bat
Avatar billede ejvindh Ekspert
17. januar 2005 - 12:38 #7
Da det ser ud til at virke, tillader jeg mig hermed at lægge et svar. :-)
Avatar billede korsg_ Nybegynder
17. januar 2005 - 12:39 #8
Okay, løste selv problemet =)

:first
md %back%
echo set nr=sun >%back%antal.bat
goto videre

Man skal nemlig oprette directoriet først, inden man kan oprette en fil.. /I virker ikke...

Jeg skriver lige igen hvis jeg har brug for mere hjælp.. men lav lige et svar for skal jo lige give dig nogle point
Avatar billede ejvindh Ekspert
17. januar 2005 - 12:40 #9
Fint nok. Husk bare at du også skal tilpasse linie 4, 6 og 15
Avatar billede korsg_ Nybegynder
17. januar 2005 - 12:40 #10
hehe nå min var ikke lige opdateret da jeg skrev den sidste kommentar.. her er pointene :D
Avatar billede ejvindh Ekspert
17. januar 2005 - 12:41 #11
Takker for point. Ja man kan let komme til at "tale i munden på hinanden" :-)
Avatar billede ejvindh Ekspert
17. januar 2005 - 12:43 #12
Og du vender selvfølgelig bare tilbage her i tråden, hvis der er flere problemer med scriptet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester