Ganz frisch aus dem Kundenforum für CoCreate Modeling (aka PTC Creo Elements/Direct Modeling): Wie startet man aus CoCreate Modeling heraus programmatisch eine interaktive Instanz von cmd.exe,
also ein cmd.exe mitsamt DOS-Prompt-Fenster?
Es liegt nahe, das zunächst mit
(oli:sd-sys-exec "cmd.exe")
zu versuchen. Das führt dann aber dazu, dass CoCreate Modeling scheinbar hängt und nichts Erkennbares passiert.
cmd.exe ist ein Kommandozeilenprogramm. Deswegen ist es völlig normal, dass ("grafisch") nichts passiert, wenn man
cmd.exe als externes Programm ohne Parameter startet, zum Beispiel per
sd-sys-exec. Dann wartet
cmd.exe nämlich einfach im Hintergrund auf weitere Eingaben und tut sonst nichts.
Will man
cmd.exe in einem eigenen Terminalfenster (landläufig "DOS-Fenster" oder "command shell" oder "command prompt") starten und interaktiv laufen lassen, kann man das so erreichen:
(oli:sd-sys-exec "start cmd.exe")
(Zu den Kommandozeilenparametern und Besonderheiten des Helferleins
start
siehe
http://ss64.com/nt/start.html.)
Bonusfrage: Wenn
cmd.exe
ein Kommandozeilenprogramm ohne grafische Oberfläche ist, wieso öffnet sich denn ein Terminalfenster, wenn man
cmd.exe
aus Windows Explorer heraus startet?
Antwort: Weil Explorer entsprechend vorkonfiguriert ist - intern wird in so einem Fall nicht einfach nur
cmd.exe
ausgeführt, sondern das moralische Äquivalent zu
start cmd.exe
.
Bonusfrage 2: Woher weiss Windows eigentlich, wo
cmd.exe
liegt? Muss man da nicht einen Pfad wie
C:\Windows\System32\cmd.exe
angeben?
Hintergrund: In der Forumsfrage wurde ein solcher hartkodierter Pfad verwendet.
Antwort: Das Verzeichnis, in dem
cmd.exe
liegt, taucht im Inhalt der Umgebungsvariablen
PATH
auf, die Windows beim Starten von Programmen konsultiert. Damit ist die explizite Angabe eines Pfades unnötig. Mehr noch, sie ist sogar kontraproduktiv und fehlerträchtig - denn nicht auf jedem Rechner liegt das Windows-Verzeichnis unter
C:\Windows
.
Bonusfrage 3: Wozu ist das eigentlich gut, so eine interaktive Instanz von
cmd.exe
aus einer CAD-Applikation heraus zu starten?
Kopfkratzende erste Antwort: Für sachdienliche Hinweise dankbar
Zweite Antwort nach Eintreffen der angeforderten sachdienlichen Hinweise: Ziel war es offenbar letztlich, ein kleines interaktives Kommandozeilenprogramm zu starten - der Start von
cmd.exe
war nur erster Test dafür.
Ziemlich überzeugend, finde ich: Die Pläne für einen Umstieg vom Schrägtiefbahnhofprojekt S21 zu einem modernisierten Kopfbahnhof, jetzt sehr anschaulich illustriert und erklärt unter http://www.parkschuetzer.de/galerien/35.
Die Aussicht, die wunderschöne Parkfläche im Mittleren Schlossgarten zu restaurieren; dabei einen leistungsfähigen Kopfbahnhof zurückzubekommen, der verschiedenste Verkehrsarten integriert (Fahrrad, Bus, Auto, Bahn, S-Bahn); damit eine riesige Menge erneuerbare Energie zu erzeugen; und schliesslich auch noch viele Jahre Bauzeit und Milliarden an Kosten zu sparen: Was könnte man daran nicht gut finden?
Previous month: Click
here.