Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 20
Danke Übersicht25Danke
Thema: Batch - Datei im Verzeichnis ausführen hi, wie führe ich relativ zur batch eine Datei aus? Die Start.bat ist hier: D:\V\Start.bat Es soll relativ die Datei ...
  1. #1
    o0Julia0o
    gehört zum Inventar Avatar von o0Julia0o

    Frage Batch - Datei im Verzeichnis ausführen

    hi,

    wie führe ich relativ zur batch eine Datei aus? Die Start.bat ist hier:

    D:\V\Start.bat

    Es soll relativ die Datei ausgeführt werden:

    D:\V\Starter\Start.exe

    Code:
    call \Starter\Start.exe
    tut das nicht.

  2. #2
    areiland
    Computer Legastheniker Avatar von areiland

    AW: Batch - Datei im Verzeichnis ausführen

    Du gibst einfach den genauen Pfad an! Oder, wenn der Batch im gleichen Ordner wie die zu startende Datei liegt, dann gibst Du "%~dp0" an, um die zu startende Datei im gleichen Ordner aufzufinden. Wenn sich diese in einem Unterordner des aktuellen Pfades befindet, dann eben "%~dp0\Starter\Start.exe" angeben, damit der Unterdner im gleichen Verzeichnis gesucht wird.
    o0Julia0o und Terrier! bedanken sich.

  3. #3
    PS_Nerd
    bekommt Übersicht

    AW: Batch - Datei im Verzeichnis ausführen

    Wenn ich dich richtig verstehe dann möchtest du aus der batch heraus die *.exe starten, mit einer relativen Pfad Angabe?

    ot:
    Start Starter\Start.exe


    Du musst nur den führenden Slash weg lassen.
    Geändert von PS_Nerd (21.03.2018 um 21:45 Uhr)
    o0Julia0o und Terrier! bedanken sich.

  4. #4
    o0Julia0o
    gehört zum Inventar Avatar von o0Julia0o

    AW: Batch - Datei im Verzeichnis ausführen

    oh ja. Jetzt verstehe ich. Es lag an etwas anderem. Das Arbeitsverzeichnis, wie setzte ich das ebenfalls auf das Verzeichnis, wo ich die Start.exe aufrufe.

    Code:
    set wd(Starter)
    -> "wd(Starter)" ist nicht definiert, sagt der mir dann.
    Terrier! bedankt sich.

  5. #5
    skorpion68
    gehört zum Inventar Avatar von skorpion68

    AW: Batch - Datei im Verzeichnis ausführen

    Zitat Zitat von o0Julia0o
    Das Arbeitsverzeichnis, wie setzte ich das ebenfalls auf das Verzeichnis, wo ich die Start.exe aufrufe.
    Der Befehl würde dann in etwa so lauten:
    Code:
    SET START=D:\V\Starter
    %START%\Start.exe
    oder gleich so:
    Code:
    SET START=D:\V\Starter\Start.exe
    %START%
    o0Julia0o bedankt sich.

  6. #6
    o0Julia0o
    gehört zum Inventar Avatar von o0Julia0o

    AW: Batch - Datei im Verzeichnis ausführen

    hm jo, aber das ist ja nicht relativ.

  7. #7
    skorpion68
    gehört zum Inventar Avatar von skorpion68

    AW: Batch - Datei im Verzeichnis ausführen

    Erkläre bitte etwas genauer oder stelle mal dein Script hier zur Verfügung.

    Nachtrag

    OK, ich hatte dich wohl falsch verstanden. Das Arbeitsverzeichnis wäre dann in etwa so zu definieren:
    Code:
    SET WORKDIR=D:\Sicherung
    Geändert von skorpion68 (22.03.2018 um 16:45 Uhr) Grund: Nachtrag
    o0Julia0o bedankt sich.

  8. #8
    o0Julia0o
    gehört zum Inventar Avatar von o0Julia0o

    AW: Batch - Datei im Verzeichnis ausführen

    Also. Die Start.bat befindet sich hier:
    D:\V\Start.bat

    Wie lege ich jetzt als Arbeitsverzeichnis folgendes Verzeichnis fest:
    D:\V\Starter

    Aber nicht als absolute Pfadangabe, sondern relativ. Das gesamte Script ruft dann 3 Dateien auf - auf die gleiche Art und Weise. Ich kann zwar die Dateien realtiv aufrufen - so:
    Start Starter\Start.exe
    Aber dann ist das Arbeitsverzeichnis immer noch:
    D:\V
    nämlich genau das Verzeichnis, wo sich die Start.bat befindet, welche ich zu Anfang aufrufe.
    skorpion68 bedankt sich.

  9. #9
    skorpion68
    gehört zum Inventar Avatar von skorpion68

    AW: Batch - Datei im Verzeichnis ausführen

    Hast du in Beitrag #7 meinen Nachtrag gelesen? Du hättest das Script mal in Code einfügen können, ich könnte es mir aber wie folgt vorstellen:
    Code:
    SET START=D:\V\Starter\Start.exe
    SET WORKDIR=D:\Sicherung
    %START% %WORKDIR%\...
    o0Julia0o bedankt sich.

  10. #10
    o0Julia0o
    gehört zum Inventar Avatar von o0Julia0o

    AW: Batch - Datei im Verzeichnis ausführen

    Hm jo.. dann hätte ich ja wieder einen absoluten Pfad mit:
    Code:
    SET WORKDIR=D:\Sicherung
    Ich bräuchte eher so etwas:
    Code:
    SET WORKDIR=Starter (und eben der Ordner, welcher sich in D:\V befindet)
    Auf gleicher Verzeichnishöhe gibt es noch Starter2(Verzeichnisname). Das müsste als nächstes als Workdir gesetzt werden. Auch wieder realtiv.
    skorpion68 bedankt sich.

  11. #11
    skorpion68
    gehört zum Inventar Avatar von skorpion68

    AW: Batch - Datei im Verzeichnis ausführen

    Ich weis, dass es manchmal nicht so möglich ist etwas zu erklären. Das Script Start.bat soll im Ordner D:\V\Starter die Datei Start.exe aufrufen aber was soll diese den nun machen. Weiter schreibst du, dass noch zwei weitere Dateien aufgerufen werden sollen und wo befinden diese sich. Wenn das allgemeine Arbeitsverzeichnis D:\V ist dann müsstest du die 3 Dateien, ohne zu wissen was diese tun sollen, so aufrufen:
    Code:
    SET WORKDIR=D:\V
    %WORKDIR%\Starter\Start.exe
    %WORKDIR%\Starter2\Start1.exe
    %WORKDIR%\Starter3\Start2.exe
    o0Julia0o und PS_Nerd bedanken sich.

  12. #12
    o0Julia0o
    gehört zum Inventar Avatar von o0Julia0o

    AW: Batch - Datei im Verzeichnis ausführen

    danke, also die Start.bat womit alles gestartet wird befindet sich hier:
    D:\V\Start.bat

    Die drei Dateien, welche ausgeführt werden sollen, befinden sich hier:
    D:\V\Starter\Start.exe
    D:\V\Starter2\Start2.bat
    D:\V\Starter3\Start3.bat

    Wenn ich folgendes im Code habe:
    Code:
    SET WORKDIR=D:\V
    dann habe ich ja einen absoluten Pfad angegeben. Das soll aber nicht so sein. Ich möchte also den Ordner "D:\V" überall, z.B. auch auf einen USB-Stick verschieben können & direkt dort ausführen können. Also ohne den Pfad oder Pfade in der Start.bat anzupassen.
    skorpion68 bedankt sich.

  13. #13
    PS_Nerd
    bekommt Übersicht

    AW: Batch - Datei im Verzeichnis ausführen

    Jetzt verstehe ich worauf du hinaus willst :-)

    Das geht mit der batch mit Sicherheit auch aber ich nutze lieber die PowerShell.

    Im Endeffekt kannst du in einen Editor einfach folgenden Code eingeben und als start.ps1 Datei speichern.

    Code:
    $Erster_Pfad = $PSScriptRoot + "\Starter\Start.exe"
    $Zweiter_Pfad = $PSScriptRoot + "\Starter2\Start.exe"
    $Dritter_Pfad = $PSScriptRoot + "\Starter3\Start.exe"
    
    & $Erster_Pfad 
    & $Zweiter_Pfad
    & $Dritter_Pfad
    $PSScriptRoot ist eine System Variable und gibt dir den aktuellen Speicherort des Scripts zurück.

    Durch eine Verkettung dieser Variable mit dem ersten 'relativen' Pfad kannst du das Script wiederum in unterschiedlichen 'UnterOrdnern' ausführen.Heißt wenn du das bei dir auf dem Rechner liegen hast und gleichzeitig auf einem USB Stick flexible sein willst kannst du das mit dieser Methode. Was allerdings immer erhalten bleiben muss um die Funktionalität zu gewährleisten ist die Ordner Struktur der zweiten Ebene die du dir ausgedacht hast. Die erste Eben ist völlig egal und kann abweichen.

    1. Ebene
    \V\
    2. Ebene
    \Starter\
    \Starter2\
    \Starter3\

    $PSScriptRoot + "\Starter\Start.exe"

    Oder anders gesagt der zweite Summant "\Starter2\Start.exe" muss immer stimmen

    Du kannst die start.ps1 dann aus einer batch öffnen oder in der Ordner Ansicht, rechte Maustaste, Öffnen mit, Powershell. Sollte PowerShell nicht angezeigt werden musst du die exe unter C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe in die Auswahl der zu öffnenden Programme aufnehmen.
    Geändert von PS_Nerd (22.03.2018 um 19:42 Uhr)
    o0Julia0o und skorpion68 bedanken sich.

  14. #14
    skorpion68
    gehört zum Inventar Avatar von skorpion68

    AW: Batch - Datei im Verzeichnis ausführen

    @o0Julia0o
    Als Batch-Script wäre es dann so:
    Code:
    %~dp0Starter\Start.exe
    %~dp0Starter2\Start2.bat
    %~dp0Starter3\Start3.bat
    oder halt so, muss aber nicht:
    Code:
    %~dp0\Starter\Start.exe
    %~dp0\Starter2\Start2.bat
    %~dp0\Starter3\Start3.bat
    Die Variable %~dp0 steht für den Verzeichnispfad z. Bsp. D:\V. Dies hatte dir aber bereits @areiland in Beitrag #2 erklärt, aber dann hattest du Beitrag #4 geschrieben.

    Sollten deine 3 Dateien verzögert ausgeführt werden dann musst du vor jeden Befehl noch START /WAIT einfügen, siehe dazu die angefügte Hilfedatei start.txt.
    Angehängte Dateien Angehängte Dateien
    o0Julia0o und PS_Nerd bedanken sich.

  15. #15
    o0Julia0o
    gehört zum Inventar Avatar von o0Julia0o

    AW: Batch - Datei im Verzeichnis ausführen

    Danke. Warten ist nicht notwendig - die sollen alle 3 parallel ausgeführt werden. Also ob ich:
    Code:
    %~dp0\Starter\Start.exe
    %~dp0\Starter2\Start2.bat
    %~dp0\Starter3\Start3.bat
    oder
    Code:
    %~dp0Starter\Start.exe
    %~dp0Starter2\Start2.bat
    %~dp0Starter3\Start3.bat
    ist egal. Es wird nichts ausgeführt. Wenn ich folgendes mache:
    Code:
    %~dp0\Starter\Start.exe
    dir
    pause
    dann sehe ich das Verzeichnis von D:\V, also dass, wo sich die Start.bat befindet mit dem Code. Somit wurde auch nicht das Arbeitsverzeichnis umgesetzt auf D:\V\Starter. Die D:\V\Start.exe wird auch nicht ausgeführt.

Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen


  • An Google übertragen Google
  • -->

    Berechtigungen

    • Neue Themen erstellen: Nein
    • Themen beantworten: Nein
    • Anhänge hochladen: Nein
    • Beiträge bearbeiten: Nein
    •  

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163