Toon posts:

Errors in een batchscript opvangen

Pagina: 1
Acties:
  • 118 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Enkele weken geleden heb ik mbv de member SilentStorm een klein script in elkaar gezet dat bestanden hernoemd vanuit een extern tekstbestand waarin de oude bestandsnaam (incl. full path) en de nieuwe naam staat, gescheiden van elkaar in 2 kolommen.

In de lijst die wordt gebruikt staan helaas enkele 100den bestanden die niet in de betreffende directory's aanwezig zijn, waardoor ik met het draaien van het script alleen "Het opgegeven bestand kan niet worden gevonden" (o.i.d.) te zien krijg op de command-line.

Nou zou ik graag willen weten WELKE bestanden die niet kan vinden, dus zeg maar de errors willen opvangen in een ander tekstbestand (een log zeg maar) zodat ik weet om welke bestanden het gaat.

Ik heb al heel veel gezocht en geprobeerd, maar helaas kom ik er ook dit keer niet uit en ben dus ook dit keer aangewezen op de hulp van GoT members met de nodig programmeer skills :)

Dit is het script wat ik momenteel gebruik:

@echo on
echo.
For /f "tokens=1,*" %%x in (lijst.txt) do @ren %%y %%x.*
echo.
echo.
pause
exit


Het tekstbestand (lijst.txt) ziet er als volgt uit:

nieuwenaam1 c:\test\oudenaam1.jpg
nieuwenaam2 c:\test\oudenaam2.jpg
nieuwenaam3 c:\test\oudenaam3.jpg


Hoe kan ik ervoor zorgen dat als bijvoorbeeld het bestand "c:\test\oudenaam3.jpg" niet kan worden gevonden, hier een melding van gemaakt wordt in een log-file?


Alvast bedankt voor alle hulp!

Verwijderd

Topicstarter
Als ik op de command-line het script draai met het volgende commando:

renamer.bat >>good.log 2>>error.log


Op deze manier krijg ik dus in error.log een x aantal keer "Het opgegeven bestand kan niet worden gevonden", maar hoe kan ik ik erbij krijgen welke bestanden die niet kan vinden?

Verwijderd

Je moet ook een IF EXIST inbouwen die checked of het bestand daadwerkelijk bestaat en indien dit, dit dumpt in een .TXT bestand.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-03 14:33

NMe

Quia Ego Sic Dico.

Doe eens niet je topic schoppen na een uurtje, we hebben ook zoiets als een edit-knop. ;)

Verder: Waar hoort mijn topic? Batchvragen horen in Windows Clients. :)

PRG>>WOS

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
-NMe- schreef op donderdag 20 juli 2006 @ 13:04:
Doe eens niet je topic schoppen na een uurtje, we hebben ook zoiets als een edit-knop. ;)

Verder: Waar hoort mijn topic? Batchvragen horen in Windows Clients. :)

PRG>>WOS
Hoort dit thuis in Windows Clients? Excuses dan, ik had echt het idee dat dit de plek was, helemaal omdat ik hier redelijk wat meer topics over batch scripting/programmeren tegenkwam?
Zit ik dan fout, als ik een batchscript ook als programmeren zie?
Enne...je had gelijk over het editen, niet aan gedacht, wist ook niet dat het zooo belangrijk was.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Je kan met "IF EXIST" gewoon testen op het bestaan van een bestand :)

Verwijderd

Topicstarter
Verwijderd schreef op donderdag 20 juli 2006 @ 12:49:
Je moet ook een IF EXIST inbouwen die checked of het bestand daadwerkelijk bestaat en indien dit, dit dumpt in een .TXT bestand.
En zou je me ook kunnen vertellen hoe? Ik heb het geprobeerd, maar blijf dan met een niet functionerend script zitten :)

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Wellicht handiger om de functie eens op te zoeken... Hij staat (zie ik net ;)) behoorlijk goed gedocumenteerd :)

[ Voor 75% gewijzigd door BtM909 op 20-07-2006 13:52 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • poktor
  • Registratie: Mei 2003
  • Laatst online: 13-03 15:32
Wat jij wilt is het errorchannel ombuigen naar een logfile. Dit doe je als volgt:
Normaal gesproken zal een melding als "file not found" bij een copy-commando in een batchfile niet in een log verschijnen, maar zie je dit heel even in het dos-venster langskomen, nietwaar? Dit komt omdat je het error-channel ook nog moet ombuigen. Dit doe je door toevoeging van "2>&1" aan het betreffende commando.
Voorbeeldje:

copy file.txt c:\temp >> %log%

wordt:

copy file.txt c:\temp >> %log% 2>&1

Hiermee worden ook de foutmeldingen in het log vastgelegd.

Verwijderd

Topicstarter
poktor schreef op donderdag 20 juli 2006 @ 13:57:
Wat jij wilt is het errorchannel ombuigen naar een logfile. Dit doe je als volgt:
Normaal gesproken zal een melding als "file not found" bij een copy-commando in een batchfile niet in een log verschijnen, maar zie je dit heel even in het dos-venster langskomen, nietwaar? Dit komt omdat je het error-channel ook nog moet ombuigen. Dit doe je door toevoeging van "2>&1" aan het betreffende commando.
Voorbeeldje:

copy file.txt c:\temp >> %log%

wordt:

copy file.txt c:\temp >> %log% 2>&1

Hiermee worden ook de foutmeldingen in het log vastgelegd.
Tot dit punt snapte ik het idd en dit is mij dan ook gelukt door te zoeken op GoT.
Maar nu wil ik ook dat als die zegt "Het systeem kan het opgegeven bestand niet vinden", in het log-file wordt gedumpt om WELK bestand het precies gaat ;)

Dat stukje blijft voor mij nog echt een raadsel :)

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Hoe uitgekauwd wil je het precies hebben? ;)

http://www.computerhope.com/if.htm

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Nou ik ben er mee bezig geweest, maarre....no way jose, help de boel alleen maar meer in de soep ipv met een oplossing te komen.
Ik heb echt geen flauw idee op welke wijze ik dit toe moet passen in mijn bestaande script(je).
Zou iemand die hier een hoop van afweet, me niet kunnen helpen met een voorbeeld o.i.d.?

Dat ik tenminste weet in welke richting ik een beetje moet zoeken ;)


Thanks!

[ Voor 9% gewijzigd door Verwijderd op 24-07-2006 14:35 ]


  • adoy
  • Registratie: November 2001
  • Laatst online: 09-12-2025

adoy

1 dubbele WifWaffer® aub!

Ik heb hier een klein opzetje voor je gemaakt... (de syntax klopt niet helemaal, en de plaats van %%x en %%y moet je ook ff checken! Maar dan heb je een beetje een idee... ;) )

@echo on
echo.

For /f "tokens=1,*" %%x in (lijst.txt) 
do 
IF EXIST %%y (
@ren %%y %%x*
) ELSE (
echo %%y bestaat niet!
)

echo.
echo.
pause
exit

Succes!

[ Voor 27% gewijzigd door adoy op 24-07-2006 15:27 ]

Fotogear -> Nikon D50 ★ Stukjes glas ★ Flitsert ★ Kleine snuisterijen


Verwijderd

Topicstarter
Top!

Hier kan ik zeker wat mee.


Thanks!
Pagina: 1