mannekl
Goto Top

Batch zum Program-Start

Hallo,

komme hier nicht zum erforderlichen Ergebnis,daß nach dem Eintrag in der Registry das Programm,User bezogen, gestartet wird.
hier mein Skript:


title ACADTweak

SET TweakPath = "%cd%\ACAD_Profil.reg"

regedit /s "%TweakPath%" >NUL

"C:\Programme\Autodesk\AutoCAD 2011\acad.exe %1 -p "%USERNAME%" >NUL

Kann mir bitte jemand weiterhelfen?
ManneKl

Content-ID: 264049

Url: https://administrator.de/forum/batch-zum-program-start-264049.html

Ausgedruckt am: 23.12.2024 um 04:12 Uhr

Meierjo
Meierjo 20.02.2015 um 09:29:22 Uhr
Goto Top
Hallo

title ACADTweak

SET TweakPath = "%cd%\ACAD_Profil.reg"

regedit /s "%TweakPath%" >NUL

"C:\Programme\Autodesk\AutoCAD 2011\acad.exe %1 -p "%USERNAME%" >NUL

Kann es sein, dass hier ein Anführungszeichen fehlt?
"C:\Programme\Autodesk\AutoCAD 2011\acad.exe %1" -p "%USERNAME%" >NUL

Ansonsten wären ein paar Infos mehr hilfreich: Fehlermeldung?

Gruss Urs
emeriks
emeriks 20.02.2015 aktualisiert um 09:34:06 Uhr
Goto Top
Hi,
@Meierjo
Ja, hast recht, machst aber den selben Fehler! face-wink
Das zweite " muss nach dem ".exe".

"C:\Programme\Autodesk\AutoCAD 2011\acad.exe" %1 -p "%USERNAME%" >NUL  

E.
Meierjo
Meierjo 20.02.2015 um 09:37:19 Uhr
Goto Top
Hallo emeriks

Jepp, sorry, richtig gemeint, aber am falschen Ort eingesetzt face-smile

Gruss
ManneKL
ManneKL 20.02.2015 um 09:51:08 Uhr
Goto Top
Hallo Urs,
Fehlermeldung kommt nicht. Es öffnet sich nichts.

Habe mal das Anführungszeichen gesetzt.
"C:\Programme\Autodesk\AutoCAD 2011\acad.exe" %1 -p "%USERNAME%" >NU

Leider erfolglos. Programm wird nicht gestartet.
Meierjo
Meierjo 20.02.2015 um 10:14:06 Uhr
Goto Top
Hallo

Aber die Zeile
regedit /s "%TweakPath%" >NUL
macht keinen Sinn, bei mir wird das Ergebnis leer (mit "") ausgeworfen
Wenn die Zeile das Profil des Benutzers in die Registry importieren soll, dann verwende

reg add

Gruss Urs
ManneKL
ManneKL 20.02.2015 um 10:32:28 Uhr
Goto Top
Hallo,
habe das verändert:


title ACADTweak

SET TweakPath = "%cd%\ACAD_Profil.reg"

reg add "%TweakPath%" >NUL

"C:\Programme\Autodesk\AutoCAD 2011\acad.exe" %1 -p "%USERNAME%" >NUL


Macht keinen Reg-Eintrag????
Meierjo
Meierjo 20.02.2015 um 10:33:06 Uhr
Goto Top
Hallo

Probier mal da, funktioniert bei mir (Win7 64 bit):

title ACADTweak
SET TweakPath="%cd%\ACAD_Profil.reg"  
rem regedit /s %TweakPath%
reg import %TweakPath%
"c:\Program Files\Autodesk\AutoCAD 2015\acad.exe" %1 -p "%USERNAME%" >NUL  

Eventuell noch Pfad anpassen, (AutoCAD 2015).

Gruss Urs
emeriks
emeriks 20.02.2015 um 10:44:58 Uhr
Goto Top
Zitat von @Meierjo:

Aber die Zeile
> regedit /s "%TweakPath%" >NUL
macht keinen Sinn, bei mir wird das Ergebnis leer (mit "") ausgeworfen
Wenn die Zeile das Profil des Benutzers in die Registry importieren soll, dann verwende

reg add

Warum sollte das keinen Sinn machen? Wenn %TweakPath% den korrekten Pfad darstellt und der Inhalt der Reg-Datei korrekt ist, dann sollte das funtionieren. Jedoch macht das ">NUL" wohl keinen Sinn, weil regedit keine Ausgabe in die Console schreibt. Und "/s" lässt es schon "silent" laufen.
Jedoch beachten: Wenn da was im HKLM eingetragen werden soll, dann benötigt der Benutzer dort Schreibrechte.

Test mal mit
echo "C:\Programme\Autodesk\AutoCAD 2011\acad.exe" %1 -p "%USERNAME%"  
pause
ob hier überhaupt die korrekte Befehlzzeile bei rauskommt.

E.
Meierjo
Meierjo 20.02.2015 um 10:54:02 Uhr
Goto Top
Hallo E.

0b19772952d395d8b485a9926cc97333

Wie du sehen kannst, bleibt die Ausgabe bei regedit /s leer.

Der Fehler lag aber eine Zeile weiter oben, dort hat der nach dem Gleichheitszeichen einen Leerschlag drin.
Die Version, die ich gepostet habe, sollte funktionieren (tuts jedenfalls bei mir)

Gruss Urs
emeriks
emeriks 20.02.2015 um 10:58:02 Uhr
Goto Top
Was auch noch sein kann: Timing?
Vielleicht ein "start /wait regedit ...." verwenden?
Damit sichergestellt ist, dass das vor dem Start von CAD in der Registry angekommen ist?

E.
ManneKL
ManneKL 20.02.2015 um 11:20:03 Uhr
Goto Top
Hallo ,
den Eintrag in der Reg macht er aber das Programm starten nicht. da kommt keine Fehlermeldung.
Den Pfad habe ich auch vorher angepasst.
???
emeriks
emeriks 20.02.2015 aktualisiert um 11:23:06 Uhr
Goto Top
Du hast es immer noch nicht geschafft, uns die Fehlermeldung(!) zu verraten ....
ManneKL
ManneKL 20.02.2015 um 11:29:45 Uhr
Goto Top
...in welchen Format kann ich hier einen Bildabschnitt reinsetzen?
emeriks
emeriks 20.02.2015 um 11:40:22 Uhr
Goto Top
ManneKL
ManneKL 20.02.2015 um 11:41:49 Uhr
Goto Top
sorry...melde mich wieder.Danke Euch bis dahin.
ManneKL
ManneKL 20.02.2015 um 11:47:18 Uhr
Goto Top
...bis dahin komm ich...
f1ccf91f37547dcf46f977884a1b8886
emeriks
emeriks 20.02.2015 um 11:54:10 Uhr
Goto Top
Und wenn Du jetzt manuell

"c:\Program Files\Autodesk\AutoCAD 2010\acad.exe"  -p "mk3"  1>NUL  

startest, was passiert dann?

Mich wundert
1. Dass %1 offenbar nicht nach "...exe" eingefügt wird und
2. woher die "1" am Ende vor dem ">NUL" kommt?

E.
Meierjo
Meierjo 20.02.2015 um 11:54:39 Uhr
Goto Top
Hallo

Schau mal in den Taskmanager, ob du dort noch einige acad.exe am Laufen hast. Wenn ja, killen, und nochmal probieren. Kann eventuell vom Probieren her kommen.

guss Urs
Meierjo
Meierjo 20.02.2015 um 12:00:09 Uhr
Goto Top
Hallo

Nimm mal das Echo in der letzten Zeile weg
emeriks
emeriks 20.02.2015 um 12:06:37 Uhr
Goto Top
Nimm mal das Echo in der letzten Zeile weg
Das war doch nur zum Test!
Meierjo
Meierjo 20.02.2015 um 13:04:44 Uhr
Goto Top
Das war doch nur zum Test!

Aber er schreibt ja, dass er bis dahin kommt. Wenn da ein Echo vorne dran ist, kann ACAD ja nicht starten, oder??

Gruss
rubberman
rubberman 20.02.2015 um 22:03:48 Uhr
Goto Top
Hallo emeriks.
Zitat von @emeriks:
Mich wundert
1. Dass %1 offenbar nicht nach "...exe" eingefügt wird
Wenn keine Parameter an die Batchdatei übergeben wurde, expandiert %1 zu einem leeren String. Das kann natürlich auch der Grund dafür sein, dass es nicht funktioniert...

2. woher die "1" am Ende vor dem ">NUL" kommt?
Die Stream-Nummer wird bei eingeschaltetem Prompt angezeigt, auch wenn sie nicht im Code zu finden ist. 1 steht für stdout, 2 für stderr und 0 für stdin.

Grüße
rubberman
emeriks
emeriks 21.02.2015 um 17:32:31 Uhr
Goto Top
Wenn keine Parameter an die Batchdatei übergeben wurde, expandiert %1 zu einem leeren String. Das kann natürlich auch
der Grund dafür sein, dass es nicht funktioniert...
Ja, schon klar. Bloß wenn der drin ist, dann soll da bestimmt ein Dokumentenpfad übergeben werden.

Die Stream-Nummer wird bei eingeschaltetem Prompt angezeigt, auch wenn sie nicht im Code zu finden ist. 1 steht für stdout, 2
für stderr und 0 für stdin.
Das ist mir noch nie aufgefallen. Danke!

E.
rubberman
rubberman 21.02.2015 um 20:04:15 Uhr
Goto Top
Bloß wenn der drin ist, dann soll da bestimmt ein Dokumentenpfad übergeben werden.
Yep. Bei der Testausgabe war das aber nicht der Fall, oder wir kennen nicht den kompletten Code. Möglich wäre unter anderem auch, dass ein Argument an den Batchprozess übergeben wurde, die entsprechende Kommandozeile aber in einer Subroutine ausgeführt wird, wo dieses Out Of Scope wäre.

Das ist mir noch nie aufgefallen.
Hehe, das ist zwar hier etwas off-topic, aber selbst die Reihenfolge wird bei der Ausgabe einer Umleitung ggf. neu sortiert.
@prompt $
<nul >nul set /p "=test"  
pause
set /p "=test" 0<nul 1>nul

pause
Drücken Sie eine beliebige Taste . . .
Grüße
rubberman
ManneKL
ManneKL 24.02.2015 um 10:46:42 Uhr
Goto Top
Hallo,
danke für Eure Hilfe bis her.
So nachdem ich das "Echo" und die "Pause" wieder entfernt habe, habe ich den Test wieder per Batch ausgeführt.
Jetzt öffnet sich das Program wie es sein sollte aber der Eintrag in der Registry erfolgt nicht mehr.
Woran kann das nun noch liegen?
MfG
Meierjo
Meierjo 24.02.2015 um 10:55:51 Uhr
Goto Top
Hallo

Poste doch nochmal die Ausgabe, die der Batch dir liefert.

Hast du die Leerzeichen entfernt, wie ich in meinem 4. Post geschrieben habe?

Gruss
ManneKL
ManneKL 24.02.2015 um 11:10:17 Uhr
Goto Top
..das ist das Skript mit dem ich es ausgeführt habe...
title ACADTweak
SET TweakPath="%cd%\ACAD_Profil.reg"
rem regedit /s %TweakPath%
reg import %TweakPath%
"c:\Program Files\Autodesk\AutoCAD 2011\acad.exe" %1 -p "%USERNAME%" >NUL
Meierjo
Meierjo 24.02.2015 um 11:16:53 Uhr
Goto Top
Hallo

Ok, schaut soweit mal gut aus.

Was erscheint denn bei der Zeile reg Import ..... für eine Meldung??
Was steht in dem File acad_profil.reg?

Gruss
ManneKL
ManneKL 24.02.2015 um 11:19:32 Uhr
Goto Top
Sorry...habe die Ausgabe leidere nicht dokumentiert.Komme jetzt nich an die Maschine...
aber als ich sie gelesen habe, sah ich keine Fehler-Meldung???
Meierjo
Meierjo 24.02.2015 um 11:41:20 Uhr
Goto Top
Hallo

Due weisst ja, was im Reg File steht. Dann kannst du ja zuerst im entsprechenden Pfad in der Registry nachschauen, ob und was da drin steht.
Dann den Befehl:

SET TweakPath="%cd%\ACAD_Profil.reg"
reg import %TweakPath%
eingeben, hier muss folgende Meldung zurückgegeben werden: "Der Vorgang wurde erfolgreich ausgeführt".

Dann kannst du wieder in der Registry nachschauen, die Aenderungen sind eingegeben.

Einfacher geht s nun wirklich nicht mehr

Gruss