Besoin d'aide pour un batch

Besoin d'aide pour un batch - Win NT/2K/XP - Windows & Software

Marsh Posté le 06-03-2003 à 03:36:55    

J'essaie de faire un batch qui dans un répertoire donné regarde dans tous les sous-répertoires d'icelui et copie les fichiers d'une certaines extension...
Le problème c'est qu'apparament la commande 'for' ne marche que pour les fichiers et donc je suis coincé. Est-ce possible à faire ou dois-je prendre un autre script (vbs ?)
(win98se je précise)

Reply

Marsh Posté le 06-03-2003 à 03:36:55   

Reply

Marsh Posté le 06-03-2003 à 08:33:25    

sans voir le batch c'est pas simple  :whistle:

Reply

Marsh Posté le 06-03-2003 à 09:15:10    

faut pas hesiter a faire du vbs pour ce genre de conneries, c'est quand meme bien plus pratique...
Si tu veux chez moi j'ai un script qui crée une liste de tout les fichiers d'une meme extension, donc a adapter ca doit pas etre trop dur...


---------------
"Ne jamais faire confiance à un truc qui peut saigner 4-5 jours par mois sans crever !"
Reply

Marsh Posté le 06-03-2003 à 10:17:01    

Al zheimeR a écrit :

J'essaie de faire un batch qui dans un répertoire donné regarde dans tous les sous-répertoires d'icelui et copie les fichiers d'une certaines extension...
Le problème c'est qu'apparament la commande 'for' ne marche que pour les fichiers et donc je suis coincé. Est-ce possible à faire ou dois-je prendre un autre script (vbs ?)
(win98se je précise)
 


 
 
si for marche aussi pour les repertoir, mais il y a une option speciale a mettre
 
puis mon PC m aide pas enormement pour cela :
 

Citation :

F?hrt einen Befehl f?r jede einzelne Datei f?r einen Satz von Dateien aus.
 
FOR %Variable IN (Satz) DO Befehl [Parameter]
 
  %Variable   Ein ersetzbarer Parameter.
  (Satz)      Ein Satz von mindestens einer Datei. Platzhalter sind zul?ssig.
  Befehl      Befehl, der f?r jede Datei ausgef?hrt werden soll.
  Parameter   Parameter und Optionen f?r den angegebenen Befehl.
 
Um den FOR-Befehl in einem Batchprogramm zu verwenden, geben Sie %%Variable
statt %Variable an. Beachten Sie die Groá-/Kleinschreibung bei Variablennamen,
%i und %I sind nicht identisch.
 
Wenn die Befehlserweiterungen aktiviert sind, werden folgende
Erg?nzungen f?r den FOR-Befehl unterst?tzt:
 
FOR /D %Variable IN (Satz) DO Befehl [Parameter]
 
    Wenn der Satz Platzhalter enth?lt, dann bezieht sich der FOR-Befehl
    auf Verzeichnisse und nicht auf Dateien.
 
FOR /R [[Laufwerk:]Pfad] %Variable IN (Satz) DO Befehl [Parameter]
 
    Der FOR-Befehl wird ausgehend vom Verzeichnis [Laufwerk:]Pfad (als
    Stammverzeichnis) f?r jedes darunterliegende Verzeichnis ausgef?hrt.
    Wenn kein Verzeichnis nach der /R-Option angegeben ist, wird das aktuelle
    Verzeichnis verwendet. Wenn der Satz nur einen einzelnen Punkt als
    Zeichen (.) enth?lt, wird nur die Verzeichnisstruktur aufgelistet.
 
FOR /L %Variable IN (Start,Schritt,Ende) DO Befehl [Parameter]
 
    Der Satz ist eine Folge von Zahlen von Start bis Ende und der
    angegebenen Schrittweite. So erzeugt (1,1,5) die Folge 1 2 3 4 5 und
    (5,-1,1) erzeugt die Folge (5 4 3 2 1).
 
FOR /F ["Optionen"] %Variable IN (Dateiensatz) DO Befehl [Parameter]
FOR /F ["Optionen"] %Variable IN ("Zeichenkette" ) DO Befehl [Parameter]
FOR /F ["Optionen"] %Variable IN (Befehl) DO Befehl [Parameter]
 
    oder, unter Verwendung der Option "usebackq":
 
FOR /F ["Optionen"] %variable IN (Dateiensatz) DO Befehl [Parameter]
FOR /F ["Optionen"] %variable IN ('Zeichenkette';) DO Befehl [Parameter]
FOR /F ["Optionen"] %variable IN (`Befehl`) DO Befehl [Parameter]
 
 
    Der Dateiensatz besteht aus einem oder mehreren Dateinamen. Jede Datei
    wird ge?ffnet, gelesen und bearbeitet, dann wird mit der n?chsten Datei
    des Satzes fortgefahren. Die Bearbeitung einer Datei erfolgt zeilenweise,
    jede einzelne Textzeile wird ausgewertet und in die entsprechenden Token
    (keinen oder mehrere) zerlegt. Die Befehle in der FOR-Schleife werden dann
    mit den Variablenwerten (d.h. den gefunden Zeichenketten bzw. Token)
    aufgerufen. Standardm?áig liefert /F den ersten, durch ein Leerzeichen
    getrennten Token von jeder Zeile in jeder Datei. Leerzeilen werden
    ?bersprungen. Das standardm?áige Verhalten bei der Analyse kann wahlweise
    durch den Parameter "Optionen" ?berschrieben werden. Das ist eine
    Zeichenkette in Anf?hrungszeichen, welche eines oder mehrere Schl?ssel-
    w?rter enth?lt, um verschiedene Parameter f?r die Analyse anzugeben. Diese
    Schl?sselw?rter sind:
 
        eol=c           - Gibt das Zeichen f?r Zeilenendekommentare an
                          (nur eins).
        skip=n          - Gibt die Anzahl der Zeilen an, die am Anfang einer
                          Datei ?bersprungen werden.
        delims=xxx      - Gibt einen Satz von Trennzeichen an. Diese ersetzen
                          die Standardtrennzeichen TAB und Leerzeichen.
        tokens=x,y,m-n  - Gibt an, welche Token von jeder Zeile an die
                          FOR-Schleife weitergegeben werden.
                          Das f?hrt dazu, dass zus?tzliche Variablen erzeugt
                          werden. Mit der Form m-n wird dabei ein Bereich vom
                          m-ten bis zum  n-ten Token angegeben. Wenn das letzte
                          Zeichen ein Sternchen ist, wird eine zus?tzliche
                          Variable deklariert, die den verbleibenden Text
                          dieser Zeile enth?lt.
        usebackq        - Gibt an, dass die neue Semantik in Kraft ist,
                          wobei eine Zeichenkette in umgekehrten Anf?hrungs-
                          zeichen als Befehl ausgef?hrt wird und eine
                          Zeichenkette in Anf?hrungszeichen ein literaler
                          Befehl ist, der die Verwendung von doppelten
                          Anf?hrungszeichen um Dateinamen in Dateinamens-
                          s?tzen erlaubt.
 
    Einige Beispiele:
 
FOR /F "eol=; tokens=2,3* delims=, " %i in (Datei.txt) do @echo %i %j %k
 
    Dadurch wird jede Zeile in der Datei Datei.txt ausgewertet, Zeilen die
    mit einem Semikolon beginnen werden ignoriert, f?r den 2. und 3. Token
    jeder Zeile werden die Befehle in der FOR-Schleife ausgef?hrt. Trennzeichen
    sind Kommas und/oder Leerzeichen. In der FOR-Schleife wird der Ausdruck %i
    verwendet, um den 2. Token zu erhalten, %j f?r den 3. Token und %k, um
    alle ?brigen Token zu erhalten. Dateinamen, die Leerzeichen enthalten,
    m?ssen Sie innerhalb doppelter Anf?hrungszeichen angeben. Dazu m?ssen
    Sie die Option "usebackq" verwenden. Andernfalls werden doppelte    
    Anf?hrungszeichen zur Definition eines auszuwertenden Literals
    verwendet.
 
    Dabei ist %i explizit deklariert, w?hrend %j und %k implizit durch die
    Option "tokens=" deklariert werden. Sie k?nnen bis zu 26 Token durch diese
    Option angeben, vorausgesetzt, es wird dadurch nicht versucht, eine
    Variable mit einem Buchstaben gr?áer als 'z' zu deklarieren. Bedenken Sie,
    dass FOR-Variablen global sind und nicht mehr als insgesamt 52 zu einem
    bestimmten Zeitpunkt aktiv sein d?rfen.
 
    Sie k?nnen den Befehl FOR /F auch direkt mit einer Zeichenkette verwenden,
    indem Sie die Zeichenkette in doppelten Anf?hrungszeichen als Dateiensatz
    zwischen den Klammern angeben. Diese Zeichenkette wird dabei als
    einzelne Zeile einer Datei betrachtet und ausgewertet.
 
    Schlieálich k?nnen Sie den Befehl FOR /F auch verwenden, um die Ausgabe
    eines Befehls auszuwerten. Dazu geben Sie eine Zeichenkette in einfachen
    Anf?hrungszeichen als Dateiensatz zwischen den Klammern an. Diese
    Zeichenkette wird dabei als Befehlszeile betrachtet und von einer unter-
    geordneten CMD.EXE ausgef?hrt. Die Ausgabe dieses Befehls wird dann wie
    eine normale Datei ausgewertet. Das folgende Beispiel listet die Umgebungs-
    variablen im aktuellen Verzeichnis auf:
 
        FOR /F " usebackq delims==" %i IN ((`set`) DO @echo %i
 
Zus?tzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie k?nnen jetzt folgende Syntax verwenden:
 
    %~I         - Expandiert %I und entfernt alle umschlieáenden  
                  Anf?hrungszeichen (" ).
    %~fI        - Expandiert %I zu einem vollst?ndigen Dateinamen.
    %~dI        - Erzeugt nur den Laufwerkbuchstaben von %I.
    %~pI        - Erzeugt nur den Pfad von %I.
    %~nI        - Erzeugt nur den Dateinamen von %I.
    %~xI        - Erzeugt nur die Dateierweiterung von %I.
    %~sI        - Erzeugter Pfad enth?lt nur kurze Dateinamen.
    %~aI        - Erzeugt die Dateiattribute von %I.
    %~tI        - Erzeugt Datum und Zeit von %I.
    %~zI        - Erzeugt die Dateigr?áe von %I.
    %~$PATH:I   - Durchsucht die in der PATH-Umgebungsvariablen
                  angegebenen Verzeichnisse und expandiert die erste
                  gefundene Datei %I zu dem vollst?ndigen Dateinamen.
                  Wenn der Name der Umgebungsvariablen nicht definiert
                  ist oder diese Datei bei der Suche nicht gefunden wurde,
                  wird dieser Parameter zu einer leeren Zeichenkette
                  expandiert.
 
Diese Parameter k?nnen auch miteinander kombiniert werden:
 
    %~dpI       - Erzeugt den Laufwerkbuchstaben und Pfad von %I.
    %~nxI       - Erzeugt den Dateinamen und die Dateierweiterung von %I.
    %~fsI       - Expandiert %I zu einem vollst?ndigen Namen, der nur
                  kurze Dateinamen enth?lt.
    %~dp$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
                  angegebenen Verzeichnisse nach %I und erzeugt den
                  Laufwerkbuchstaben und Pfad der ersten gefundenen Datei.
    %~ftzaI     - Expandiert %I zu einer Zeile, die der Ausgabe des DIR-
                  Befehls entspricht.
 
In den angegebenen Beispielen k?nnen %I und PATH durch andere g?ltige
Werte ersetzt werden. Der Ausdruck %~ wird durch einen g?ltigen Variablen-
namen f?r FOR abgeschlossen. Die Verwendung von Groábuchstaben f?r die Namen
von Variablen, wie z.B. %I, macht diese Ausdr?cke leichter lesbar und
vermeidet Verwechslungen mit den eigentlichen Parametern.


Message édité par z_cool le 06-03-2003 à 10:19:07

---------------
#mais-chut
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed