2017-04-08 4 views
0

Ich habe eine Anforderung, wo ich eine Batch-Datei verwenden muss, um bestimmte Aufgaben abhängig von einigen Registrierungswerten durchzuführen. Ich bin in der Lage zu laufen und mein Ziel zu erreichen, wenn ich die Batch-Datei manuell ausführe. Wenn der Stapel jedoch mit einer ausführbaren Datei ausgeführt wird, können die Registrierungswerte nicht abgerufen werden. Es liest alle Registrierungswerte als leer. Ich sehe keinen besonderen Grund für dieses Verhalten. Die tatsächliche Anforderung besteht darin, diese Batchdatei als Teil der selbstextrahierenden ausführbaren Datei auszuführen. Ich habe versucht, es mit C# -Anwendung starten, immer noch kein Glück. Irgendwelche Ideen? Was mache ich falsch.Registrierung kann nicht aus Batch-Datei gelesen werden

+0

Beitrag des Code, sonst wird dieser Beitrag ist Thema für Stack-Überlauf ab. – Compo

+2

Am wahrscheinlichsten Ursache: die ausführbare Datei ist 32-Bit, so dass es eine 32-Bit-Instanz von 'cmd.exe' zum Ausführen der Batch-Datei startet, so dass Sie die [32-Bit-Ansicht der Registrierung] (https sehen : //msdn.microsoft.com/en-us/library/windows/desktop/aa384232 (v = vs.85) .aspx) statt der 64-Bit-Ansicht. Etwas in der Art von [diese Antwort] (http://stackoverflow.com/a/27093204/886887) könnte das Problem lösen. –

+0

@Harry Danke. Das war der eigentliche Grund. Obwohl die ausführbare Datei 64 Bit war, versucht sie immer noch, die 32-Bit-Registrierung zu lesen. Ich musste es zwingen, 64-Bit-Registrierung zu lesen. – dev

Antwort

0

Elevate die Berechtigungen für die ausführbare d.h Als Administrator ausführen

+0

Ich habe versucht, als Administrator zu laufen, es hat nicht funktioniert. Wenn ich den Batch über die Eingabeaufforderung ausführe, kann er einfach ausgeführt werden, ohne dass Administratorrechte erforderlich sind. Das scheint also nicht das Problem zu sein. – dev

Verwandte Themen