Batch: Leerzeichen in For Schleife

  • Hallo Leute,
    komme hier nicht mehr weiter und hoffe es hat jemand einen Tip für mich. Es geht um folgende Zeile:

    Code
    FOR /F %%k in ( '%InstallPath%\mediainfo --Inform^=^"Video^;%%Width/String%%^" %%f' ) do set Width=%%k

    %InstallPath% hat jetzt Leerzeichen und somit wir mediainfo nicht gestartet. Das ganze einfach in "" setzten geht auch nicht und FOR /F "usebackq" %i in hätte ich auch versucht, leider ohne Erfolg.

    Habt ihr eine Idee?

  • Also so geht es nicht?

    Code
    FOR /F %%k in ( '"%InstallPath%\mediainfo.exe" --Inform^=^"Video^;%%Width/String%%^" %%f' ) do set Width=%%k

    Kann ja sein, dass man nur die Anführungszeichen um den richtigen Bereich setzen muss: Nicht nur um den Pfad, sondern um das Programm außerdem.

  • mit meinem alten mpack-tool habe ich auch mal das problem gehabt...
    kannst dir das chaos mal anschauen... :D

    so habe ich es umgesetzt:

    Code
    cd /d "%~dp0"SET "xAppDir=%CD%"SET "xDatei=%~1"[COLOR='#D3D3D3']:: ... zwischenraum[/COLOR]cd /d "%xAppDir%\tools\Mediainfo"FOR /F "Delims=" %%i in ('Mediainfo.exe --Inform^=Audio^;%%SamplingRate%% "%xDatei%"') do set "xSR=%%i"FOR /F "Delims=" %%i in ('Mediainfo.exe --Inform^=Audio^;%%Channel^(s^)%% "%xDatei%"') do set "xCH=%%i"cd /d "%xAppDir%"

    wie du siehst wechselte ich direkt ins programmverzeichnis,
    so habe ich das problem des unbekannten installationsverzeichnis umgangen...


    aber eigendlich müssten "anfürungszeichen" ausreichen!?

    Code
    FOR /F %%k in ( '[COLOR='#FF0000']"[/COLOR]%InstallPath%\mediainfo[COLOR='#A9A9A9'].exe[/COLOR][COLOR='#FF0000']"[/COLOR] --Inform^=^"Video^;%%Width/String%%^" %%f' ) do set Width=%%k

    wichtig ist, dass %InstallPath% keine "anfürungszeichen" hat
    wenn du werte mit %1 ermittelst, dann numm lieber %~1 oder %~dpnx1

    infos über %~dpnx1-platzhalter findest du in der windows-konsole mit diesem befehl:
    for /?
    (ganz am schluss)


    [edit:]
    arg LigH war schneller... warum musste ich auch so viel schreiben... XD

  • Ich danke euch beiden für die Antwort. Den Pfad in "" zu setzten klappt leider nicht, aus irgendeinem Grund wird dann der der Parameter --Inform^=^"Video^;%%Width/String%%^" nicht mehr richtig übernommen. In den Installationspfad zu wechseln habe ich mir auch schon überlegt, schien mir aber etwas kompliziert zu sein, weil ich ja auch wieder zurück in den Ursprungspfad muss. Aber momentan scheint mir da keine andere Möglichkeit zu bestehen und ich werde mir das doch noch mal näher anschauen. Dafür ist dein Beispiel HQ-LQ natürlich sehr hilfreich!

  • So könnte es gehen:

    Code
    pushd %installpath%
    FOR /F %%k in ( 'mediainfo.exe --Inform^=^"Video^;%%Width/String%%^" %%f' ) do set Width=%%k
    popd

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!