28. august 2003 - 14:08Der er
6 kommentarer og 1 løsning
Nemt windowsscript tid+størrelse af copy..
Hejsa alle. Jeg har ikke helt styr på scrips. Men har lavet en simpel backup funktion med noget Xcopy etc. Nu ville jeg gerne kunne skrive noget, når jeg slutter backup'en.
Hvis du bruger windows 2000/XP kan du bruge følgende "kommando" til at skrive tid og dato: echo Backup'en afsluttet %date% %time% Man kan ikke umidelbart se hvor mange bytes der er flyttet men godt hvor mange filer der er flyttet. Hviket OS bruger du? Man kan næsten intet i Win9x. Hvis du viser os dit script kan jeg måske tilføje udskrivning af antal filer (og måske antal bytes hvis det er vigtigt).
Hejsa bertel.. Takker for dit svar.. Jeg bruger XP, så vil med det samme tilføje dine to kommandoer. Antal filer vil være tilstrækkeligt, det er mere til kontrol for at alt er kørt og den ikke er blevet afbrudt etc. Har du eventuelt et link til hvor jeg kan finde kommandoerne?
Husk svar, hvis du vil have point ;) Takker Vedelsby
Man kan bruge følgende kommando til at kopiere og finde ud af hvor mange filer der blev kopieret:
for /F %%I in ('xcopy *.* tt ^| findstr /C:"File(s) copied"') do echo %%I
Her udskriver den blot antallet af filer der blev kopieret.
Hvis du har flere linier kan du lægge tallene sammen: Set /A NumFiles=0 for /F %%I in ('xcopy *.* dest1 ^| findstr /C:"File(s) copied"') do set /A NumFiles += %%I for /F %%I in ('xcopy *.* dest2 ^| findstr /C:"File(s) copied"') do set /A NumFiles += %%I Og så udskrive til slut: echo %NumFiles%
Hvis din XP ikke skriver "File(s) copied" når den er færdig med at kopiere, men noget andet, skal du udskifte det der står efter findstr med det den skriver.
Du kan læse om for og findstr ved at skrive "help for" og "help findstr" i en kommando prompt eller ved at søge efter batch i Start->help.
Mange tak for dit svar.. Det er meget brugbart. Jeg ved ikke om det er for meget, men kunne du kort beskrive hvad de enkelte funktioner står for, så jeg ikke skal skrive til dig igen når jeg skal have justeret det.. ;0)
Og forresten gider du ikke skrive som svar? Mange tak Martin
1: Kør kommandoen xcopy *.* dest1 (dvs alt fra den første ' til |)
2: Køre output herfra gennem findstr, der her virker som et filter og fjerner alle linier fra xcopy kommandoen der ikke indeholder "File(s) copied"
3: Output herfra (fx "5 File(s) copied") køres gennem en for-løkke (da der kune er en linie, sker det kun en gang), og %%I assignes til det første ord i linen (i dette tilfælde 5).
4: Det der står efter do bliver så kørt hvor %%I er antallet af filer der blev kopieret. Kommandoen set /A bruges til at regne med, NumFiles += %%I betyder at %%I (antalet af filer der blev kopieret, 5) bliver lagt til variablen NumFiles.
5: Set /A NumFiles=0 betyder blot: Sæt variablen NumFiles til 0
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.