Avatar billede jpi Mester
22. juli 2003 - 09:30 Der er 19 kommentarer og
1 løsning

BAT-fil output til fil og skærm

Jeg skal lave en bat-fil der kopierer en fil ud på en masse computere via netværket.
For at have styr på om alle computere er blevet opdateret skal outputtet fra bat-filen gemmes i en fil. Samtidig skal man kune følge med på skærmen, og se hvad der sker.

copy c:\filename.txt \\computer\c\destination > log.txt
Dette gør at kun teksten "1 file copied" bliver gemt i log-filen, og når derr er mange af dem kan man ikke se hvilken der evt. fejler...

Hvad kan man gøre ?

P.S. Det skal virke på Win95
Avatar billede jnoval Nybegynder
22. juli 2003 - 09:41 #1
Har du slået echo off?. Jeg synes at man plejer at få det hele med i tekstfilen. Jeg ved ikke om det kan lade sig gøre at få vist det på skærmen på samme tid. En mulighed kunnevære at vise log filen efter.
Hvis du skal have tilføjet mere til samme log, så mener jeg du skal bruge >>log.txt
Avatar billede jpi Mester
22. juli 2003 - 09:50 #2
Nej, echo er ikke slået off.

At vise log-filen bagefter er ikke nogen god løsning, da jeg gerne vil se hvorlangt jeg er nået med kopieringen...
Avatar billede jpi Mester
22. juli 2003 - 09:52 #3
Jeg tænkte at der måske var en kommando der "grabbede" alt hvad der skrives til skærmen og lægger det i en fil ?
Avatar billede jnoval Nybegynder
22. juli 2003 - 10:01 #4
Jeg jeg tænkte nok at du ikke kunne bruge at vise log filen efter.

Men jeg forstår ikke at du kun får ! 1 file copied" i din log fil.
jeg har lige lavet en test med et bat job i Windows 2000:
copy trail.* f:\ >f:\log.txt

Det gav dette i log.txt
trail.txt.1
trail.txt.2
trail.txt.3
trail.txt.4
trail.txt.5
trail.txt.6
trail.txt.7
        7 file(s) copied.
Jeg kan ikke tro at der er så stor forskel på 95 og 2000.
Avatar billede jpi Mester
22. juli 2003 - 10:05 #5
Jeg tror forskellen ligger i at du kopierer mere end 1 fil, og derfor vises alle filnavne der kopieres.

Jeg kopierer en fil til mange forskellige computere og derfor er det underordnet om finavnet kommer med, men snarere hele copy-commandoen, således at man kan se hvilken computer der ikke har modtaget filen...
Avatar billede jnoval Nybegynder
22. juli 2003 - 10:22 #6
Kopier du til flere computere i en kommando eller i hver sig kommando
Avatar billede jpi Mester
22. juli 2003 - 10:23 #7
En copy commando til hver computer...
Avatar billede rune.rasmussen Nybegynder
22. juli 2003 - 10:27 #8
Skriv i stedet:

copy c:\filename.txt \\computer\c\destination >> log.txt

bemærk den ekstra >, den gør at outputtet bliver tilføjet til log.txt. en enkelt > nulstiller log.txt før output skrives.
Avatar billede rune.rasmussen Nybegynder
22. juli 2003 - 10:29 #9
hvis din bat ligner dette:

copy c:\filename.txt \\computera\c\destination > log.txt
copy c:\filename.txt \\computerb\c\destination >> log.txt
copy c:\filename.txt \\computerc\c\destination >> log.txt

brug da > og >> som jeg har vist, nemlig med 1 > i den første linje og 2 >> i de efterfølgende.
Avatar billede jpi Mester
22. juli 2003 - 10:46 #10
rune.rasmussen
Det eneste der kommer i log.txt er som sagt "1 file copied", og hvis en af copycommandoen fejler ved jeg ikke hvilken en det er...
Desuden kommer der ingen output på skærmen, så jeg kan følge med i hvad der sker...
Avatar billede rune.rasmussen Nybegynder
22. juli 2003 - 10:58 #11
hvis du laver en anden bat fil med denne linje:
kopier.bat > log.txt

hvor kopier.bat er den bat fil du allerede har lavet, så får du flere oplysninger i log.txt

men jeg tror ikke det er muligt at få outputtet ud på skærmen samtidig.

hvis du har et winnt eller win2000 resource kit, så kan du dog bruge Robocopy i stedet, den kan logge samtidig med at output kommer på skærmen.
Avatar billede jpi Mester
22. juli 2003 - 11:00 #12
Det skal virke på Win95... desværre
Avatar billede jpi Mester
22. juli 2003 - 11:01 #13
rune.rasmussen
Du har ret med kopier.bat > log.txt
Avatar billede jpi Mester
22. juli 2003 - 11:01 #14
Nå, jeg prøver på en anden måde:
Noget i retning af
copy "nr1"
if errorlevel 0
  echo nr 1 OK
  echo nr 1 OK >> log.txt
if not errorlevel 0
  echo nr 1 fejl
  echo nr 1 fejl >> log.txt
copy "nr2"
osv.
Avatar billede rune.rasmussen Nybegynder
22. juli 2003 - 11:08 #15
ellers kan du prøve xxcopy (www.xxcopy.com)
Avatar billede jpi Mester
22. juli 2003 - 11:09 #16
Øv, dette er vist ikke helt ligetil...
errorlevel virker vist ikke helt som forventet

Har oprettet nyt spørgsmål...
Avatar billede jpi Mester
22. juli 2003 - 11:13 #17
xxcopy lyder som et OK produkt, men man skal have Pro-udgaven for at kunne kopiere via netværk, så...
Avatar billede bertelbrander Novice
25. juli 2003 - 01:55 #18
Man budre kunne bruge:

copy fil.ext somewhere >temp.txt
if errorlevel 1 echo temp.txt
if errorlevel 1 echo temp.txt>>log.fil

DVS. man putter output fra kommandoen i en fil, hvis der er en fejl skrives beskeden ud på skærmen og i log filen.
Avatar billede jpi Mester
25. juli 2003 - 10:53 #19
Nå, løsningen jeg selv foreslog er nu endelig kommet til at virke langt om længe. Problemet var bare en masse bøvl med errorlevel...
Avatar billede jpi Mester
25. juli 2003 - 11:05 #20
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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