tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
734
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Mar 2004
    Beiträge
    1.856
    Blog-Einträge
    2
    Ich lese alle .tex Dateien aus einem Verzeichnis und möchte genau deren Namen als .bib haben.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    @echo off
    set tmp=""
     
    for %%f in (*.tex) do (
        set tmp="%%f"
        set tmp=%tmp:tex=bib%
        echo %tmp%
    )

    Beispiel:

    Vorhandene Dateien:
    • document.tex
    • foo.tex
    • bar.tex
    • bib.bat

    Gedachte Ausgabe:
    Code :
    1
    2
    3
    
    document.bib
    foo.bib
    bar.bib

    Leider gibt die obige Batch immer nur dieses aus:
    Code :
    1
    2
    3
    
    bar.bib
    bar.bib
    bar.bib

    Verstehe nicht warum die Variable sich nicht ändern kann.
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.
    Zitat Zitat von ZodiacXP Beitrag anzeigen
    Verstehe nicht warum die Variable sich nicht ändern kann.
    Weil das in Batch nunmal so ist. Variablen werden nur einmal für jeden Ausdruck ersetzt, in dem Fall wenn die Schleife das erste Mal interpretiert wird.

    Du mußt die verzögerte Variablen-Expansion einschalten und diese Art von Variablen verwenden.

    Siehe "help set" oder

    Gruß
    ZodiacXP bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Registriert seit
    Mar 2004
    Beiträge
    1.856
    Blog-Einträge
    2
    SETLOCAL EnableDelayedExpansion

    und alle Variablen in ! statt % einfassen.

    Klappt wunderbar - vielen Dank!
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

Ähnliche Themen

  1. Macro Substitution
    Von MeySolution im Forum PHP
    Antworten: 2
    Letzter Beitrag: 05.01.11, 11:08
  2. Batch Leerzeichen im String entfernen
    Von bergonline im Forum Sonstige Sprachen
    Antworten: 2
    Letzter Beitrag: 08.05.09, 16:24
  3. substitution
    Von FunkyMonkey im Forum PHP
    Antworten: 6
    Letzter Beitrag: 29.11.07, 16:17
  4. string replace mit batch
    Von shybby im Forum Sonstige Sprachen
    Antworten: 5
    Letzter Beitrag: 19.07.07, 19:27
  5. Batch: String aus Datei löschen
    Von Zymbo im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 10.03.05, 09:42