Toon posts:

[DOS] Met .bat bestand map doorlopen

Pagina: 1
Acties:
  • 163 views sinds 30-01-2008

Verwijderd

Topicstarter
Hey,

Ik wil dmv imagemagick met command lines automatisch een zooi images op een bepaald vaste formaat laten resizen en andere bewerkingen laten doen.

Nu wil ik eigenlijk met een .bat bestand een map doorlopen zoekend naar plaatjes en dan deze allemaal op die manier resizen etc.

Weet iemand of dit mogelijk is met een .bat bestand?

  • stimpie79
  • Registratie: Juni 2003
  • Laatst online: 24-02 10:37
dit is zeker mogelijk...

om je even op weg te helpen: onderstaande code neemt alle bestanden (met als bestandsnaam een reeks cijfers en extensie txt), en zet er overal 'renamed_' voor...
(bvb: 0123456.txt >> renamed_0123456.txt)

code:
1
2
3
4
5
6
7
8
9
10
@echo off
for %%i in (0 1 2 3 4 5 6 7 8 9) do for %%j in (C:\TEST\%%i*.txt) do call :chnames %%j
set longname=
goto :eof

:chnames
set longname=renamed_
set longname=%longname:.=%%~n1.txt
ren %1 %longname%                              << hier zit het rename commando 
goto :eof

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Het staat gewoon in de help van MS-DOS 6.22:
FOR

Voert een opdracht uit op elk bestand in een groep bestanden. U kunt de
opdracht FOR vanuit een batch-programma gebruiken of direct achter de
opdrachtaanwijzing.

Syntaxis

Gebruik de volgende syntaxis als u de opdracht FOR in een batch-programma
opneemt:

FOR %%variabele IN (verzameling) DO opdracht [opdrachtparameters]

Gebruik de volgende syntaxis als u de opdracht FOR achter de
opdrachtaanwijzing invoert:

FOR %variabele IN (verzameling) DO opdracht [opdrachtparameters]

Parameters

%%variabele of %variabele
Staat voor een vervangbare variabele. De opdracht FOR vervangt
%%variabele (of %variabele) door elke tekenreeks in de opgegeven
verzameling totdat de opdracht (opgegeven in de parameter opdracht) alle
bestanden heeft verwerkt. Gebruik in batch-programma's de parameter
%%variabele en achter de opdrachtaanwijzing de parameter %variabele.

(verzameling)
Geeft één of meer bestanden of tekenreeksen aan waarvoor de opgegeven
opdracht moet worden uitgevoerd. De haakjes zijn verplicht.

opdracht
Geeft de opdracht aan die u op alle bestanden uit de opgegeven
verzameling wilt uitvoeren.

opdrachtparameters
Geeft de parameters of schakelopties aan die u met de opgegeven opdracht
wilt gebruiken (als deze opdracht parameters of schakelopties heeft).

----------------------------------------------------------------------------
FOR--Opmerkingen

De trefwoorden IN en DO gebruiken

IN en DO zijn geen parameters, maar een verplicht onderdeel van de opdracht
FOR. Als u een van deze trefwoorden achterwege laat, beeldt MS-DOS een
foutmelding af.

Vervangbare variabelen gebruiken

Voor variabele kunt u elk willekeurig teken opgeven behalve de cijfers 0 tot
en met 9; dit om verwarring met de batch-parameters %0 tot en met %9 te
voorkomen. Voor eenvoudige batch-programma's is een enkel teken zoals %%F
doorgaans voldoende.

In complexe batch-programma's kunt u meerdere waarden voor variabele
gebruiken om de verschillende vervangbare variabelen te onderscheiden. Het
is echter niet toegestaan op dezelfde opdrachtregel de opdracht FOR meerdere
keren te gebruiken.

Een groep bestanden opgeven

Met de parameter verzameling kunnen een of meer groepen bestanden worden
opgegeven. U kunt gebruik maken van jokertekens (* en ?) om een verzameling
bestanden op te geven. Dit zijn enkele voorbeelden van geldige
bestandsverzamelingen:

(*.doc)

(*.doc *.txt *.me)

(jan*.doc jan*.rpt feb*.doc feb*.rpt)

(ar??1993.* ap??1993.*)

Tijdens de uitvoering van de opdracht FOR vervangt de eerste waarde in
verzameling de %%variabele (of %variabele), waarna MS-DOS de opgegeven
opdracht voor deze waarde uitvoert. Dit wordt herhaald totdat MS-DOS alle
bestanden (of alle groepen bestanden) heeft verwerkt die overeenkomen met de
waarde (of waarden) in de verzameling.
----------------------------------------------------------------------------

FOR--Voorbeelden

Stel, u wilt met de opdracht TYPE de inhoud bekijken van alle bestanden in
de huidige directory met de toevoeging .DOC of .TXT. Gebruik hiertoe de
vervangbare variabele %F en geef achter de opdrachtaanwijzing de volgende
opdracht op:

for %f in (*.doc *.txt) do type %f

In dit voorbeeld wordt de variabele %F vervangen door de bestanden met de
toevoeging .DOC of .TXT uit de huidige directory, totdat de inhoud van alle
bestanden is weergegeven. Als u deze opdracht in een batch-bestand wilt
gebruiken, vervangt u de variabele %F door %%F. Als u dat niet doet, zal
MS-DOS de variabele negeren en een foutmelding afbeelden.

In de opdracht die u wilt uitvoeren, kunt u gebruik maken van schakelopties,
sluistekens en doorstuurtekens. Met de volgende opdracht kunt u bijvoorbeeld
de uitvoer van het vorige voorbeeld doorsturen naar PRN (de
standaardprinterpoort):

for %f in (*.doc *.txt) do type %f > prn:

  • Equator
  • Registratie: April 2001
  • Laatst online: 17:08

Equator

Crew Council

#whisky #barista

code:
1
for /f "tokens=* usebackq" %i in (`dir /B *.jpg`) do echo %i

Nu nog een exe die de files daad werkelijk resised en dan moet je er met een beetje rommelen wel uitkomen..

Overigens is het
code:
1
for /f "tokens=* usebackq" %%i in (`dir /B *.jpg`) do echo %%i

als je het in een batch file doet.. (dubbele %.)

Zo.. Spuit 11..
iig is for je vriend in deze ;)

[ Voor 13% gewijzigd door Equator op 14-07-2005 09:37 ]


Verwijderd

Topicstarter
het resizen is me gelukt met imagemagick. Nu zat ik alleen in de rats met de bestanden, hiermee zou het inderdaad moeten lukken. Ik ga is testen kan ik in die FOR loop ook gelijk bestandsnamen van 001 tot bijv 999 .jpg meegeven?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Waarom niet?

Hoe dan ook, ik mis in dit topic een beetje je eigen inzet. Wat heb je zelf al geprobeerd om hieruit te komen? Deze informatie vinden via Google is niet zo moeilijk als je zoekt naar een batch tutorial. :)

Verder hoort batch eigenlijk in WOS, maar aangezien je er zo ook wel uit moet komen verplaats ik je topic niet, maar zet ik het op slot

'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.

Pagina: 1

Dit topic is gesloten.