Syntax für Batch Datei mit Call Befehl gesucht
Hallo werte Admins, ich hoffe mit Eurer Hilfe folgendes Problem mit einer Batch-Datei lösen zu können.
Ich möchte gern eine Batch-Datei durch eine andere Batch-Datei ausführen bzw. starten. Leider konnte ich trotz Google und viel Zeitaufwand nichts Brauchbares zustande bringen, da ich auf diesem Gebiet leider auch nicht viel Ahnung habe. Nun hoffe ich hier Hilfe zu finden. Folgende Problemstellung:
Auf einem USB-Stick befindet sich ein Ordner. In diesem wiederum eine Datei mit Namen "start.bat". Diese würde ich gern durch eine weitere Batch-Datei starten bzw. ausführen wollen, welche außerhalb dieses Ordners, quasi im Stammverzeichnis des Sticks liegt. Ich habe es mit der folgenden Syntax probiert, welche ich mir sozusagen zusammengegoogelt habe. Aber leider funktioniert diese nicht und ich habe keine Ahnung warum.
call \Ornername\start.bat
Ich hoffe, dass Ihr mir den Fehler in der Syntax oder andere Lösungsansätze aufzeigen könnt. Erwähnenswert ist evtl. noch, dass der Stick an ständig wechselnden Rechnern genutzt werden soll und daduch auch der Laufwerksbuchstabe des Sticks immer anders sein kann.
Für Hilfe vielen Dank im Voraus!
TAGTAG
Ich möchte gern eine Batch-Datei durch eine andere Batch-Datei ausführen bzw. starten. Leider konnte ich trotz Google und viel Zeitaufwand nichts Brauchbares zustande bringen, da ich auf diesem Gebiet leider auch nicht viel Ahnung habe. Nun hoffe ich hier Hilfe zu finden. Folgende Problemstellung:
Auf einem USB-Stick befindet sich ein Ordner. In diesem wiederum eine Datei mit Namen "start.bat". Diese würde ich gern durch eine weitere Batch-Datei starten bzw. ausführen wollen, welche außerhalb dieses Ordners, quasi im Stammverzeichnis des Sticks liegt. Ich habe es mit der folgenden Syntax probiert, welche ich mir sozusagen zusammengegoogelt habe. Aber leider funktioniert diese nicht und ich habe keine Ahnung warum.
call \Ornername\start.bat
Ich hoffe, dass Ihr mir den Fehler in der Syntax oder andere Lösungsansätze aufzeigen könnt. Erwähnenswert ist evtl. noch, dass der Stick an ständig wechselnden Rechnern genutzt werden soll und daduch auch der Laufwerksbuchstabe des Sticks immer anders sein kann.
Für Hilfe vielen Dank im Voraus!
TAGTAG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 202774
Url: https://administrator.de/contentid/202774
Ausgedruckt am: 26.11.2024 um 12:11 Uhr
19 Kommentare
Neuester Kommentar
Hallo,
die Umgebungsvariable für "Current Directory" in Windows ist %cd%. Das ist wichtig, damit Du unabhängig vom Laufwerksbuchstaben bist (der sich ja für USB-Sticks ändern kann bzw. von Computer zu Computer verschieden ist). Also solltedie Batchdatei ausführen. Das kannst Du so in eine Batch-Datei schreiben, welche im Stammverzeichnis des Sticks liegt.
Markus
die Umgebungsvariable für "Current Directory" in Windows ist %cd%. Das ist wichtig, damit Du unabhängig vom Laufwerksbuchstaben bist (der sich ja für USB-Sticks ändern kann bzw. von Computer zu Computer verschieden ist). Also sollte
%cd%\Ordnername\start.bat
Markus
Zitat von @bastla:
@ hmarkus
Da aber %cd% nur das ohnehin aktuelle Verzeichnis angibt, tut's auch einfach
Grüße
bastla
Da hab ich wohl zu weit gedacht @ hmarkus
Da aber %cd% nur das ohnehin aktuelle Verzeichnis angibt, tut's auch einfach
Ordnername\start.bat
>
bastla
Danke für die Korrektur.
Markus
Hallo Zusammen.
Relative Pfadangaben sind schon möglich. Genau genommen funktioniert die Syntax genau so bei mir im Test (auch wenn der führende Backslash nicht einmal nötig ist, wenn du dich im Rootverzeichnis befindest).
Die Ursache dafür, dass es trotzdem fehlschlägt ist also woanders zu suchen:
Magst du etwas konkretisieren bzw. trifft irgend etwas davon zu?
Grüße
rubberman
Relative Pfadangaben sind schon möglich. Genau genommen funktioniert die Syntax genau so bei mir im Test (auch wenn der führende Backslash nicht einmal nötig ist, wenn du dich im Rootverzeichnis befindest).
Die Ursache dafür, dass es trotzdem fehlschlägt ist also woanders zu suchen:
- der Pfad enthält Leerzeichen
- der Pfad enthält Sonderzeichen (wie zB. &)
- der Pfad enthält Umlaute oder ß
- die Batchdatei wurde "Als Administrator" ausgeführt und das Arbeitsverzeichnis ist somit automatisch %systemroot%\system32
Magst du etwas konkretisieren bzw. trifft irgend etwas davon zu?
Grüße
rubberman
Hallo,
setz doch mal ein
vor deinen TrueCrypt-Befehl
und am Ende der Batch ein
dann solltest du auch sehn, was in der anderen DOS_Box passiert
btw. müsste doch glaub ich
heißen oder ?
Mit allerfreundlichsten Grüßen
Exzellius
setz doch mal ein
echo "Die Batch wird ausgeführt!"
und am Ende der Batch ein
pause
btw. müsste doch glaub ich
start TrueCrypt.exe ...
Mit allerfreundlichsten Grüßen
Exzellius
Hallo,
dachte ich mir schon, dass die Batch aufgerufen wird aber nichts bei rauskommt
es ist etwas anderes, wenn du eine Batch per Doppelklick aufführst, oder in einer anderen Batch aufrufst :
ich kenne mich persönlich mit TrueCrypt nicht aus, allerdings setze doch bitte mal das so um:
ich gehe hierbei davon aus, dass der TrueCrypt-Befehl soweit richtig ist, weil ich mich wie gesagt damit leider garnicht auskenne
Grüße
Exzellius
dachte ich mir schon, dass die Batch aufgerufen wird aber nichts bei rauskommt
es ist etwas anderes, wenn du eine Batch per Doppelklick aufführst, oder in einer anderen Batch aufrufst :
ich kenne mich persönlich mit TrueCrypt nicht aus, allerdings setze doch bitte mal das so um:
start "" TrueCrypt.exe /ly /q /a /c n /m rm /v /e GEHEIM
action=Mount TrueCrypt Volume
Grüße
Exzellius
Hi,
gut dass das nun schonmal funktioniert, allerdings kann ich dir bei TrueCrypt nicht weiterhelfen
was allerdings sein könnte (reine Spekulation) ist, dass es "TrueCrypt Volume" heißen muss -> Anführungszeichen
Grüße
Exzellius
gut dass das nun schonmal funktioniert, allerdings kann ich dir bei TrueCrypt nicht weiterhelfen
was allerdings sein könnte (reine Spekulation) ist, dass es "TrueCrypt Volume" heißen muss -> Anführungszeichen
Grüße
Exzellius
Hallo,
ist ja klar, dass es nicht funktionieren kann, weil das Script welches im Root-Verzeichnis des Sticks liegt dann sucht er auch im Root-Verzeichnis des Sticks nach TrueCrypt.exe.
Mit "\Tresor\TrueCrypt.exe" findet er die .exe
Ich weiß nur die Syntax des "action"-Befehls nicht :D das ist mein Problem.
ist TrueCrypt Volume eine Datei, die in \Tresor liegt, dann versuche \Tresor\TrueCrypt Volume
Grüße
Exzellius
ist ja klar, dass es nicht funktionieren kann, weil das Script welches im Root-Verzeichnis des Sticks liegt dann sucht er auch im Root-Verzeichnis des Sticks nach TrueCrypt.exe.
Mit "\Tresor\TrueCrypt.exe" findet er die .exe
Ich weiß nur die Syntax des "action"-Befehls nicht :D das ist mein Problem.
ist TrueCrypt Volume eine Datei, die in \Tresor liegt, dann versuche \Tresor\TrueCrypt Volume
Grüße
Exzellius
Hi,
entschuldige aber ich hab leider keine Ahnung wie TrueCrypt funktioniert
da wird dir jemand anders helfen müssen.
Vielleicht @bastla
Mit freundlichen Grüßen
Exzellius
entschuldige aber ich hab leider keine Ahnung wie TrueCrypt funktioniert
da wird dir jemand anders helfen müssen.
Vielleicht @bastla
Mit freundlichen Grüßen
Exzellius
Hallo Zusammen.
So ungewöhnlich ist das alles gar nicht.
Testumgebung:
test1.bat
test2.bat
Ich starte "test2.bat" direkt. Ausgabe:
Ich starte "test1.bat" und rufe mit ihr "test2.bat" auf. Ausgabe:
Und nun ist schon klar dass das Arbeitsverzeichnis aus "test1.bat" übernommen wird.
Abhilfe schafft bspw die Änderung von "test2.bat" wie folgt:
truecrypt.exe aber ohne START Befehl ausführen, da der Prozess sonst asynchron läuft.
Grüße
rubberman
So ungewöhnlich ist das alles gar nicht.
Testumgebung:
D:
|- testverzeichnis
| |
| |- test2.bat
|
|- test1.bat
test1.bat
@echo off &setlocal
call "testverzeichnis\test2.bat"
test2.bat
@echo off &setlocal
echo **********
echo Ich bin "%~f0".
echo Ich arbeite in "%cd%"
echo **********
pause
Ich starte "test2.bat" direkt. Ausgabe:
**********
Ich bin "D:\testverzeichnis\test2.bat".
Ich arbeite in "D:\testverzeichnis"
**********
Drücken Sie eine beliebige Taste . . .
Ich starte "test1.bat" und rufe mit ihr "test2.bat" auf. Ausgabe:
**********
Ich bin "D:\testverzeichnis\test2.bat".
Ich arbeite in "D:\"
**********
Drücken Sie eine beliebige Taste . . .
Und nun ist schon klar dass das Arbeitsverzeichnis aus "test1.bat" übernommen wird.
Abhilfe schafft bspw die Änderung von "test2.bat" wie folgt:
@echo off &setlocal
pushd "%~dp0"
echo **********
echo Ich bin "%~f0".
echo Ich arbeite in "%cd%"
echo **********
popd
pause
truecrypt.exe aber ohne START Befehl ausführen, da der Prozess sonst asynchron läuft.
Grüße
rubberman
Hallo TAGTAG,
Die Kurzfassung:
Relative Pfadangaben beziehen sich auf das Arbeitsverzeichnis. Wenn du das Batchfile per Doppelklick startest, ist das Arbeitsverzeichnis gleich dem Verzeichnis in dem die Batchdatei liegt. Rufst du statt dessen aus einem anderen Batch auf, ist das Arbeitsverzeichnis das des aufrufenden Batchfiles. Das ist der Grund warum truecrypt.exe nicht gefunden wurde und sicherlich der Grund, warum auch das Verzeichnis GEHEIM nicht gefunden wurde (liegt bei dir auch im Verzeichnis Tresor nehme ich an). %~dp0 enthält Laufwerk und Pfad des gerade laufenden Batchfiles. PUSHD wechselt das Arbeitsverzeichnis, mit POPD wechselst du wieder zurück.
Grüße
rubberman
Das ist für einen Anfänger wie mich erst mal ein bißchen viel input
Naja, eigentlich dachte ich, dass es genau so am einfachsten zu verstehen und nachzuvollziehen ist.Die Kurzfassung:
Relative Pfadangaben beziehen sich auf das Arbeitsverzeichnis. Wenn du das Batchfile per Doppelklick startest, ist das Arbeitsverzeichnis gleich dem Verzeichnis in dem die Batchdatei liegt. Rufst du statt dessen aus einem anderen Batch auf, ist das Arbeitsverzeichnis das des aufrufenden Batchfiles. Das ist der Grund warum truecrypt.exe nicht gefunden wurde und sicherlich der Grund, warum auch das Verzeichnis GEHEIM nicht gefunden wurde (liegt bei dir auch im Verzeichnis Tresor nehme ich an). %~dp0 enthält Laufwerk und Pfad des gerade laufenden Batchfiles. PUSHD wechselt das Arbeitsverzeichnis, mit POPD wechselst du wieder zurück.
sondern habe sie einfach in exe-Dateien konvertiert
Brrr - Da sträuben sich mir die Nackenhaare!Grüße
rubberman
Hi,
nicht nur dir ...
aber wenn TAGTAG damit zufrieden ist, dann möchte ich dich bitte darum bitten, dass du den Beitrag auf gelöst setzt.
Mit freundlichen Grüßen
Exzellius
nicht nur dir ...
aber wenn TAGTAG damit zufrieden ist, dann möchte ich dich bitte darum bitten, dass du den Beitrag auf gelöst setzt.
Mit freundlichen Grüßen
Exzellius