starten einer ausführbaren windows-Datei per batch-script, exe nicht in Program Files
Dies ist wahrscheinlich batch-scripting 101, aber ich finde keine klare Erklärung/Dokumentation über, warum dies geschieht, oder wenn mein workaround ist eigentlich die Lösung. Also im Grunde alle Begriffe oder links zu guten Quellen, ist wirklich zu schätzen.
Also ich habe ein Programm, das ich ausführen lassen möchte via batch-Skript (zusammen mit einigen anderen Programmen). Es ist das einzige, wo die exe
ist nicht in einem Program Files
Ordner. Kann ich es so anfangen:
C:\WeirdProgram\WeirdProgramModule\weirdmodule.exe
Aber ich bekomme einen Fehler entlang der Linien von:
Run-time Error '3024':
Could not find file
C:\Users\MyUserName\Desktop\ModuleSettings.mdb
So scheint es, dass das Programm sucht für seine Einstellungen, Dateien aus dem gleichen Ort, an dem das batch-script startet. Da habe ich endlich alles zu funktionieren, indem Sie Folgendes tun:
cd C:\WeirdProgram\WeirdProgramModule\
weirdmodule.exe
Das funktioniert, und es ist nicht das Ende der Welt zu haben, diesen Weg zu gehen (nur eine extra Zeile), aber ich habe mich überzeugt, dass ich was falsch mache, basiert auf einem Mangel an Grundverständnis.
Weiß jemand oder kann mir warum es so funktioniert?
Oh, und tut das folgende:
start "C:\WeirdProgram\WeirdProgramModule\weirdmodule.exe"
nicht tun überhaupt nichts.
Dank,
Du musst angemeldet sein, um einen Kommentar abzugeben.
du machst es perfekt 🙂
die ausführbare Datei ist wahrscheinlich auf der Suche nach dieser Datei im "current working directory", welches gesetzt wird, wenn Sie "cd" vor.
können Sie Ihr Arbeitsverzeichnis manuell durch erstellen einer Verknüpfung zu deiner batch-Datei, rechts klicken, Eigenschaften.
edit:
können Sie auch Ihr Aktuelles Arbeitsverzeichnis festlegen mit der
start
Befehl:edit:
Wenn Sie gerne weitergeben params, fügen Sie Sie einfach auf die ausführbare Datei mit dem Namen, als würden Sie in eine reguläre Verknüpfung:
oder
Referenz die syntax ist hier beschrieben: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds.mspx?mfr=true.
Was passiert, ist, dass
weirdmodule.exe
ist die Suche in den "current directory" für die.mdb
- Datei. Sie könnten in der Lage zu sagen, wo sich die.mdb
- Datei über Kommandozeilenparameter oder eine andere Konfiguration (registry oder .ini-Datei, vielleicht). Wie würden Sie den Speicherort angeben, ist völlig bis zu denweirdmodule.exe
- Programm, wenn.Andere als die, wird Ihre aktuelle workaround ist wahrscheinlich das, was Sie stecken mit.
Soweit Ihr problem mit der
start.exe
... diestart.exe
Programm hat das sehr, sehr merkwürdig Verhalten (bizarre Verhalten meiner Meinung nach) der Behandlung von den ersten parameter wie 'Titel', um in das Fenster, wenn (und nur wenn) der erste parameter in Anführungszeichen steht. So haben Sie ein paar Optionen:Nicht, verwenden Sie Anführungszeichen, um anzugeben, das Programm. Dies funktioniert für Sie, da brauchen Sie nicht zitiert (es gibt keine Leerzeichen oder Sonderzeichen im Pfad, der erforderlich wäre, zu zitieren):
Geben Sie eine leere (oder eine andere Zeichenfolge) Titel als ersten parameter. Dies ist etwas, was Sie würde tun müssen, wenn Ihr Pfad Zitate:
mdb
Datei wird rechts neben derexe
- Datei. Ich würde denken, dass es Aussehen würde, in der gleichen Weg, hiess es aus, bevor Sie sich in den Pfad, von dem es aufgerufen (wenn das macht keinen Sinn).