tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
816
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von takidoso
    takidoso takidoso ist offline Mitglied Brillant
    Registriert seit
    Aug 2004
    Ort
    Kömigstein
    Beiträge
    911
    Hallo und Halli,
    irgendwie habe ich bei dem Versuch einer For-Schleife fest gestellt, dass nur das erste comando ausgeführt wird.
    hier das beispiel an dem ich bin was prima funktioniert:
    Code :
    1
    
    for %%X in (input\*.txt) do (xlsgen.bat %%X output\%%~nX.xls)
    hier werden in einem input-verzeichnis alle Dateien mit der Endung txt in eine Exceldatei verwandelt. Dabei wird angenommen, dass es sich im Eingang um csv Dateien handelt.
    Nun würde ich soooo gerne die Eingangsdateien in einen Archivordner bewegen, doch der Befehl wird offenbar ignoriert. Entweder liegt das daran, dass die Shell das nachfolgende für weitere Parameter für das vorangegangene commando (übrigens ein VBA-Progrämmchen) hält.
    Code :
    1
    
    for %%X in (input\*.txt) do (xlsgen.bat %%X output\%%~nX.xls move %%X archive\%%~nX%%~xX)
    Entweder benötigt man hier noch einen Trenner zwischen den beiden Befehlen, wobei ich nicht weiß welches Zeichen das dann wäre und ob For tatsächlich mehr als ein commando in seiner do-Clausel akzeptiert, oder man legt die beiden Befehle in eine eigene Datei die man dann aufruft, was ich allerdings eigetnlich vermeiden wollte.

    Frage geht das überhaupt in der Do-Clausel von der For-Schleife mehr als ein Kommando ausführen zu lassen, und wenn ja, dann wie?

    mit fragenden Grüßen

    Takidoso
     

  2. #2
    Avatar von takidoso
    takidoso takidoso ist offline Mitglied Brillant
    Registriert seit
    Aug 2004
    Ort
    Kömigstein
    Beiträge
    911
    Wow ... gerade dann, wenn man es richtig macht, funktioniert es auch

    Der Delimeter den man benötigt um mehrere Kommandos in die Do-Clausel zu stellen ist (wer hätte das gedacht) eine neue Zeile
    Sieht also so aus
    Code :
    1
    2
    3
    
    for %%X in (input\*.*) do (
    xlsgen.bat %%X output\%%~nX.xls 
    move %%X archive\%%~nX%%~xX)

    manchmal kommt man tatsächlich mit Ausprobieren und stumpfen raten weiter

    in diesem Sinne
    Takidoso
     

  3. #3
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.
    Zitat Zitat von takidoso Beitrag anzeigen
    Der Delimeter den man benötigt um mehrere Kommandos in die Do-Clausel zu stellen ist (wer hätte das gedacht) eine neue Zeile
    Oder man verwendet den Befehlsverkettungsoperator (http://de.wikibooks.org/wiki/Batch-P...Operatoren#.26).

    (Je nach gewünschter Übersichtlichkeit)

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

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 07.11.10, 19:51
  2. getURL("http://abc.de" "_blank"); - funktioniert nicht mehr
    Von ali-gator im Forum Flash Plattform
    Antworten: 5
    Letzter Beitrag: 04.05.06, 10:31
  3. Antworten: 4
    Letzter Beitrag: 09.11.04, 23:38
  4. Batch Befehl "start"
    Von Nekronomekron im Forum Microsoft Windows
    Antworten: 4
    Letzter Beitrag: 27.09.04, 07:46
  5. Antworten: 3
    Letzter Beitrag: 20.08.01, 18:34