[XE 650] Ausführungsverzeichnis Batch-Dateien

CaptainBeyond

Herzlich willkommen!
Hallo allerseits,

ich öffne einen Truecrypt-Container auf meinem USB Stick mit einer Batchdatei im gleichen Verzeichnis.
Wenn ich in FreeCommander 2009 oder dem Explorer einen Doppelklick auf die Batchdatei mache, klappt das problemlos.
In FreeCommander XE erhalte ich beim Doppelklick die Fehlermeldung "Datei nicht gefunden".
Kann es sein, dass die Batchdatei mit Doppelklick im FreeCommander-Verzeichnis ausgeführt wird und deshalb den Container nicht findet?
Wenn ich die Datei über den Dialog "öffnen" starte, funktioniert es wieder.
Kann ich irgendwo einstellen, dass Batch Datei per Doppelklick in dem Verzeichnis ausgeführt werden, in dem sie liegen?
 
Hallo Captain Beyound,

willkommen hier im Forum :).

Wäre gut gewesen, wenn du den Inhalt deiner Batch-Datei mit gepostet hättest.

Aber probier mal folgendes:

Füge am Ende der Batch-Datei den Befehl "PAUSE" ein, das bewirkt, dass das "CMD"-Fenster nicht geschlossen wird u. du somit den Fehler suchen u. beseitigen kannst.
"ECHO" muss hierbei eingeschaltet sein! (Befehl: "ECHO ON"/"@ECHO ON", bzw. keine Angabe in der Batch-Datei)
 
Hallo Helibob,
Wäre gut gewesen, wenn du den Inhalt deiner Batch-Datei mit gepostet hättest.
Ich benutze diese Batch, um einen TC Container auf meinem Stick auf einem beliebigen Windowsrechner mit TrueCrypt als LW P zu mounten.
Hier ist sie mit pause:
Code:
 "%PROGRAMFILES%\TrueCrypt\truecrypt.exe "/l p /v "back.dat" /a /q""
   pause
danach kommt wenn ich in FreeCommander XE doppelt auf die Batch Datei klicke:
Code:
U:\Bin>"C:\Program Files (x86)\TrueCrypt\truecrypt.exe "/l p /v "back.dat" /a /q
""
Das System kann den angegebenen Pfad nicht finden.

U:\Bin>pause
Drücken Sie eine beliebige Taste . . .

Schreibt man eine Batchdatei nur mit den beiden Anweisungen DIR und PAUSE drin sieht man, dass im Windows-Explorer bei Doppelklick und mit dem Kontext-Menüpunkt Öffnen dasselbe Verzeichnis angezeigt wird, bei FreeCommander XE aber einmal das aktuelle und einmal das FreeCommander Verzeichnis.
 
CaptainBeyond schrieb:
...einmal das aktuelle und einmal das FreeCommander Verzeichnis.
Also 2-mal die Batch-Datei ausgeführt mit 2 verschiedenen Ergebnissen?

<Edit>Vielleicht hilft dir das hier weiter: ^^ist schon ein paar Tage her - 2009!
Code:
@REM - Wechselt in den Pfad der aktullen Batchdatei 
@REM - Wichtig bei Aufruf von Batchdateien über "Call" oder "Start"!
@REM - REL09I21
cd/d %~dp0
</Edit

Ein Problem sehe ich mit den Anführungszeichen, das zweite müßte direkt nach dem ".exe" stehen.

Ja, mit den Anführungszeichen ist das immer so ein Sache :mad ^^hab da auch öfter meine Probleme, den Win scheint da oft etwas eigenwillig.

Wenn es dann immer noch nicht funktioniert, weil auch bei der Angabe deines TC-Volume, bin ich mir jetzt nicht sicher, welcher Pfad TC nun verwendet wird.

An deiner Stelle würde ich jetzt wie folgt vorgehen:

Kommandozeile öffnen u. nacheinander (wenn wie gewünscht funktioniert) folgendes eingeben u. dich somit langsam vortasten
- "C:\Program Files (x86)\TrueCrypt\truecrypt.exe"
- "C:\Program Files (x86)\TrueCrypt\truecrypt.exe" /l p /v "<VollständigenPfad>\back.dat" /a


Ich vermeide grundsätzlich "Leerzeichen" in meinen Pfaden, welche ich mit einer Batch-Datei verwenden möchte ^^spart eine Menge an Ärger.
 
Zuletzt bearbeitet:
Habe gerade nochmal versucht dein Verzeichnis-Problem nachzustellen!

Code:
@ECHO OFF
CMD /C
ECHO %CD%
PAUSE

Bei mir zeigt es mir stets auch das Verzeichnis an, in dem die Batchdatei liegt (3 verschiedene Verzeichnis ausprobiert, auch eines von einem Wechselmedium).
 
Hallo,
ich werde verrückt ;)
Bei mir klappt das nicht. Ich habe deine Batchdatei im Verzeichnis U:\Bin liegen.
In FreeComander XE
Doppelklick: Es wird als Verzeichnis U:\Bin angezeigt
Über Kontextmenü und öffnen: Es wird: C:\Program Files (x86)\FreeCommanderXE angezeigt.

Im Windows Explorer:
Doppelklick: Es wird als Verzeichnis U:\Bin angezeigt
Über Kontextmenü und öffnen: Es wird: ebenfalls U:\Bin angezeigt.

Unter FreeComander 2009 habe ich das Verhalten vom WindowsExplorer.

Frage, könnte das am 64Bit Kontextmenü von XE liegen, denn ich habe Windows 7 64Bit?
 
Habe auch Win 7 64-bit, allerdings habe ich dich hierbei scheinbar etwas missverstanden ^^sry, kam mir aus deinem ersten Post nicht klar rüber :wand

Korrigiere mich falls ich (wieder) falsch liege.

Dein Problem ist, dass der FreeCommander beim Öffnen/Ausführen einer Batch-Datei über das Kontextmenü andere Parameter (Problem hier: Basisverzeichnis) an die Kommandozeile übergibt, als beim direkten Öffnen/Ausführen über einen Doppelklick?! Die Batch-Datei selbst funktioniert an und für sich?!

Wenn ich das unter diesen Aspekt so nochmal ausprobiere:

FC; Doppelklick = Pfad der Batch-Datei
FC; Kontextmenü = Pfad von FreeCommander.exe
Explorer; Doppelklick = Pfad der Batch-Datei
Explorer; Kontextmenü = Pfad der Batch-Datei

Wenn es in den Einstellungen von FreeCommander nichts gibt o. für dieses Verhalten einen Grund gibt, kann ich dir folgende Änderung vorschlagen (hat bei mir funktioniert):

Code:
@ECHO OFF
CMD /C
cd/d %~dp0
ECHO %CD%
PAUSE

PS: Rein Interesse halber, gibt es einen speziellen Grund für das Öffnen/Ausführen über das Kontextmenü?
 
Zuletzt bearbeitet:
@CaptainBeyound: Hast du meinen "Edit" mitbekommen?
Ja habe ich, wenn auch etwas verspätet. Erst mal vielen Dank für deine Mühe.
Ich möchte die Batchdatei ja gerade nicht über das Kontextmenü öffnen, aber nur so funktioniert es mit FreeCommander XE. In den anderen Explorern funktioniert die Batchdatei wie gewohnt mit Doppelklick.
Jetzt muss ich es nur noch schaffen, das Verzeichnis über %CD% in meine Anweisung für TrueCrypt einzubauen.
Meine "DOS"-Tage sind auch schon länger vorbei.:D
Aber auch wenn ich mit deiner Hilfe eine Lösung für mein Problem hinbekomme, wofür ich dir dankbar bin, bleibt bei mir immer noch die Feststellung, dass FC hier Batchdateien anders behandelt, als andere Explorer. Ich weiß nicht, ob dieses Kleinstproblem auch für andere User problematisch ist. Vielleicht kümmert sich Marek irgendwann mal darum, aber dabei kann er sich ruhig Zeit lassen ;)
 
Ich habe gerade noch etwas experimentiert und habe nun den Verdacht, es hängt gar nicht daran, dass er in den beiden Fällen ein anderes Basisverzeichnis liefert.
Code:
@echo %PROGRAMFILES%
PAUSE
Ruf mal diese Batchdatei im Freecommander mit Doppelklick auf und starte sie mal über das Kontextmenü.
Was hältst du denn davon?
 
Mein Ergebnis: ^^habe es Aufgrund des 1. Ergebnis deines Codes noch erweitert

Code:
@ECHO %PROGRAMFILES%; %PROGRAMFILES(x86)%
PAUSE

FC; Doppelklick = "C:\Program Files (x86)"; "C:\Program Files (x86)"
FC; Kontextmenü = "C:\Program Files"; "C:\Program Files (x86)"
Explorer; Doppelklick = "C:\Program Files"; "C:\Program Files (x86)"
Explorer; Kontextmenü = "C:\Program Files"; "C:\Program Files (x86)"

Hätte eher erwartet, das die Abweichung für die Variable im FC auch beim Aufruf über das Kontextmenu entsteht.
^^ist schon mal gut zu wissen

Somit sind beide Ausführungsvariante mit gewissen Problemen/Abweichungen verbunden!

Das falsche Zielverzeichnis über das Kontextmenü ist meiner Meinung nach vertretbar ^^benutzt man nicht so, bzw. mit richtiger Mod. der Batch-Datei umgänglich. Zumal die Mod. keinerlei Nebenwirkungen haben sollte.

Für eine falsch übergebene Variable beim Doppelklick hätte ich momentan keine Idee, dies seitens der Batch-Datei zu kompensieren. ^^Ansich auch etwas suboptional

@Marek: Hast du dafür eine Erklärung, bzw. kannst du das (bei Gelegenheit) "fixen"?
 
Zuletzt bearbeitet:
Na, dann hat mein "Problemchen" doch noch einen nachvollziehbaren Grund.;)
Und trotzdem möchte ich betonen, dass ich FreeCommander seit Jahren benutze und
es für ein ausgezeichnetes Programm halte(y)
Nach einmal Danke Helibob für die Mühe beim Suchen.
:)
 
Kein Problem, in dem Fall unter Umständen für mich auch von Nutzen. ^^habe auch einige Batch-Dateien in Benutzung.

Hoffe Marek schaut auch mal rein.

Was das Programm angeht, muss ich mich auch anschließen ^^hätte hier sogar noch einigen Nachholbedarf bei den vielen Funktionen, die eine odere Andere auch mal näher anzuschauen
 
%PROGRAMFILES% für ein 32-Bit Programm wird zu "C:\Program Files (x86)" expandiert (Doppelklick in FC).
FC-Kontextmenu wird über ein 64-Bit Programm gezeigt FcContextMenu64.exe und %PROGRAMFILES% wird zu "C:\Program Files" expandiert.

Für FC-64 Bit:
FC-64; Doppelklick = "C:\Program Files"; "C:\Program Files (x86)"
FC-64; Kontextmenü = "C:\Program Files"; "C:\Program Files (x86)"

Wenn TRuCrypt in "C:\Program Files" installiert ist, dann diese Zeile wird nicht funktionieren (32 Bit Programm):
"%PROGRAMFILES%\TrueCrypt\truecrypt.exe "/l p /v "back.dat" /a /q""

Ich glaube mit FC-64 müsste problemlos funktionieren FreeCommander Forum ? View topic - x64.
 
Nochmal zum Verständnis, bzw. zusammenfassend:

"FcContextMenu64.exe" (= Zusatzprogramm für den Aufruf des Kontextmenu unter Freecommander) gibt die Variable korrekt wieder weil 64-bit?!
Durch die Verkettung zum Zusatzprogramm, ergibt sich dann das FC-Verzeichnis als Basis für die Batch-Datei?!

"freeCommander.exe" gibt 64-bit-spezifische Variable(n) falsch wieder, weil eben noch auf 32-bit-Basis?!
 
Oben