tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von deepthroat
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
748
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,
    auf einer sehr nutzvollen Seite fand ich die Befehlskombination um den Directory-Pfad aus einem Parameter zu holen.
    Code :
    1
    
    %~p0

    Nun hätte ich zu gerne davon eine Stufe höher und hatte solche Sachen ausprobiert wie
    Code :
    1
    2
    
    APP_HOME=%~p0
    APP_HOME=%~p%APP_HOME%
    oder
    Code :
    1
    2
    
    APP_HOME=%~p0
    APP_HOME=%~pAPP_HOME
    aber auch
    Code :
    1
    
    APP_HOME=%~p0~p
    Natürlich erfolglos, da ich die generelle Syntaxregeln dieser Kryptik offenbar nicht wirklch verstehe

    Hat da jemand eine knackige Löstung für mich?

    vielen Dank für Hinweise im Voraus

    Takidoso
     

  2. #2
    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
    auf einer sehr nutzvollen Seite fand ich die Befehlskombination um den Directory-Pfad aus einem Parameter zu holen.
    Siehe "help call".
    Zitat Zitat von takidoso Beitrag anzeigen
    Nun hätte ich zu gerne davon eine Stufe höher und hatte solche Sachen ausprobiert wie
    Bsp:
    Code :
    1
    2
    
    setlocal EnableDelayedExpansion
    pushd "%~p0\.." && set parentdir=!CD! && popd
    Gruß

    PS: Das funktioniert natürlich nur falls das Verzeichnis existiert.
    Geändert von deepthroat (18.06.10 um 13:39 Uhr)
    takidoso bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von takidoso
    takidoso takidoso ist offline Mitglied Brillant
    Registriert seit
    Aug 2004
    Ort
    Kömigstein
    Beiträge
    911
    Das war ein echter Fundus für mich, danke!
    Aber noch eine Frage bezogen auf ENABLEEXTENSIONS bzw. ENABLEDELAYEDEXPANSION
    SETLOCAL

    Mit den Befehlserweiterungen wird der SETLOCAL-Befehl folgendermaßen verändert:
    ENABLEEXTENSIONS / DISABLEEXTENSIONS
    Aktiviert bzw. deaktiviert Befehlserweiterungen. Geben Sie
    CMD /? ein, um weitere Informationen zu erhalten.
    ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
    Aktiviert bzw. deaktiviert die verzögerte Erweiterung von
    Umgebungsvariablen. Geben Sie SET /? ein, um weitere Informationen
    zu erhalten.
    erklärt leider nicht ganz für mich was eine verzögerte Erweiterung bedeutet.
    Leider war mein Googeln diesbezüglich auch nicht so recht befriedigend.
    Was ist also der Unterschied zwischen verzögerte und ncht verzögerte Erweiterung?

    Mit neugierigen Fragen

    Takidoso
    Geändert von takidoso (18.06.10 um 16:39 Uhr)
     

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von takidoso Beitrag anzeigen
    Aber noch eine Frage bezogen auf ENABLEEXTENSIONS bzw. ENABLEDELAYEDEXPANSION

    erklärt leider nicht ganz für mich was eine verzögerte Erweiterung bedeutet.
    Leider war mein Googeln diesbezüglich auch nicht so recht befriedigend.
    Was ist also der Unterschied zwischen verzögerte und ncht verzögerte Erweiterung?
    Die %x% Variablen werden pro Befehl nur einmal expandiert und zwar bevor der Befehl ausgeführt wird.

    Bsp:
    Code :
    1
    2
    3
    4
    5
    6
    
    set x=1
    FOR /L %%i IN (1,1,5) DO (
        set /a x=%x%+%%i
        echo.%%i: %x%
    )
    echo.res: %x%
    Ausgabe:
    Code :
    1
    2
    3
    4
    5
    6
    
    1: 1
    2: 1
    3: 1
    4: 1
    5: 1
    res: 6
    Die !x! Variablen werden verzögert expandiert und so wird immer der aktuelle Wert eingesetzt:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    setlocal EnableDelayedExpansion
    set x=1
    FOR /L %%i IN (1,1,5) DO (
        set /a x=!x!+%%i
        echo.%%i: !x!
    )
    echo.res: %x%
    Ausgabe:
    Code :
    1
    2
    3
    4
    5
    6
    
    1: 2
    2: 4
    3: 7
    4: 11
    5: 16
    res: 16
    Gruß
    takidoso bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. mc per buttonclick eine ebene höher setzen?
    Von MTMonline im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 22.10.05, 11:11
  2. Mac client an Windows Active Directory
    Von rflx im Forum Mac OS
    Antworten: 1
    Letzter Beitrag: 19.10.05, 15:40
  3. eine Ebene höher?
    Von Blattspinat im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 12.10.05, 21:16
  4. Windows 2000 Server Active Directory
    Von wazzi im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 23.01.04, 08:02
  5. include file eine ebene höher
    Von Pflaumi im Forum ASP
    Antworten: 3
    Letzter Beitrag: 01.01.02, 05:07