none
CMD Command funktioniert in Batch nicht. Syntax?

    Question

  • Guten Tag

    Ich versuche von einer vorhandenen Directorystruktur eine Kopie der obersten Ordner in ein Ziellaufwerk zu kopieren. Keine Unterordner, keine Dateien.

    In CMD funktioniert das so einwandfrei:

    ===================================

    cd C:\

    for /d %i in (*) do @md "e:\test\%i"

    ===================================

    Sobald ich das in ein Batch File speichere und den Batch ausführe, erhalte ich:

    ===================================

    C:\>\test\
    Der Befehl "\test\" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    "\test\i"" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
    C:\>for /d \test\i"
    ===================================

    Kann mir jemand die korrekte Syntax nennen? Ich weiss, es hat mit Escape-Sequenzen resp. den Anführungszeichen in Verbindung mit der  Variablen %i zu tun, die in Batch Files anders sein muss als interaktiv.

    Franz

    Monday, January 07, 2013 7:00 PM

All replies


  • Franz G meinte:

    Sobald ich das in ein Batch File speichere und den Batch ausführe, erhalte ich:

    ===================================

    C:\>\test\
    Der Befehl "\test\" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    "\test\i"" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
    C:\>for /d \test\i"
    ===================================

    for /?

    daraus:

    Um den FOR-Befehl in einem Batchprogramm zu verwenden, geben Sie %%Variable
    statt %Variable an.

    Christoph Sternberg */\

    Monday, January 07, 2013 8:06 PM
  • Genau

    Funktioniert bestens!

    cd C:\

    for /d %%i in (*) do @md "e:\test\%%i"

    Besten Dank

    Franz

    Monday, January 07, 2013 9:15 PM
  • Moin,

    Am 07.01.2013 20:00, schrieb Franz G:

    In CMD funktioniert das so einwandfrei:
    for /d %i in (*) do @md "e:\test\%i"

    In der Batch musst du das Sonderzeichen "%" mit einem "%" maskieren/ankündigen. Du musst es also verdoppeln.
    -> for /d %%i in (*) do @md "e:\test\%%i"

    Tschö
    Mark


    Mark Heitbrink - MVP Windows Server - Group Policy

    Homepage:       www.gruppenrichtlinien.de - deutsch
    GPO Tool:       www.reg2xml.com - Registry Export File Converter
    NetworkTrayTool www.gruppenrichtlinien.de/tools/Networktraytool.htm

    Tuesday, January 08, 2013 10:02 AM