AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Problem mit ShellExecute und SUBST
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit ShellExecute und SUBST

Ein Thema von idontwantaname · begonnen am 29. Mär 2005 · letzter Beitrag vom 29. Mär 2005
Antwort Antwort
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem mit ShellExecute und SUBST

  Alt 29. Mär 2005, 09:31
Hallo

Ich will die Ausgabe von SUBST in eine Textdatei speichern, und zwar mit folgendem Code:
ShellExecute(Handle, 'open', 'SUBST', '> "I:\output.txt"', nil, SW_SHOW); Nur leider funktioniert dieser Code nicht. Woran köntne das liegen ??
Ich habe es auch ohne die doppelten Anführungszeichen beim Dateinamen versucht.
Oliver Hanappi
Besucht meine neue Homepage: http://oli.hux.de
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#2

Re: Problem mit ShellExecute und SUBST

  Alt 29. Mär 2005, 09:38
Es liegt daran, dass du SUBST mit dem Parameter '> "I:\output.txt"' aufrufst. Da Subst diesen Parameter nicht kennt, passiert auch nix. Ein-/Ausgabeumleitungen sind ein Feature von cmd.exe.

Deshalb empfehle Ich:

  ShellExecute(Handle, 'open', 'C:\Windows\System32\cmd.exe', '/c "subst > I:\output.txt"', nil, SW_SHOW);
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Problem mit ShellExecute und SUBST

  Alt 29. Mär 2005, 09:41
Besser:ShellExecute(Handle, 'open', 'cmd', '/c "subst > I:\output.txt"', nil, SW_SHOW); Geht wahrscheinlich beides, aber bei Windows kann man nie wissen, vielleicht ändert sich ja mal das Windows-verzeichnis ... (z.B. Bei Win2000 "WinNT")
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Problem mit ShellExecute und SUBST

  Alt 29. Mär 2005, 09:44
und was mache ich, wenn im pfad der outputdatei leerzeichen vorkommen
da müsste ich ja die doppelten anführungszeichen verwenden
Oliver Hanappi
Besucht meine neue Homepage: http://oli.hux.de
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Problem mit ShellExecute und SUBST

  Alt 29. Mär 2005, 09:46
Zitat von jfheins:
Besser:ShellExecute(Handle, 'open', 'cmd', '/c "subst > I:\output.txt"', nil, SW_SHOW); Geht wahrscheinlich beides, aber bei Windows kann man nie wissen, vielleicht ändert sich ja mal das Windows-verzeichnis ... (z.B. Bei Win2000 "WinNT")
ich hab z.b. gar kein C:, naja, es ist ein dvd-laufwerk, deswegen habe ich eh von anfang an das verwendet
Oliver Hanappi
Besucht meine neue Homepage: http://oli.hux.de
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Problem mit ShellExecute und SUBST

  Alt 29. Mär 2005, 09:58
So z.B.:
ShellExecute(Handle, 'open', 'cmd', '/c "ping web.de > "c:\my output.txt""', nil, SW_SHOW);
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Problem mit ShellExecute und SUBST

  Alt 29. Mär 2005, 10:01
hm, da hätte ich auch selber raufkommen können ....

jedenfalls danke an jfheins und Waldteufel
Oliver Hanappi
Besucht meine neue Homepage: http://oli.hux.de
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#8

Re: Problem mit ShellExecute und SUBST

  Alt 29. Mär 2005, 12:40
Noch besser: %ComSpec% auslesen um herauszufinden welcher Kommandozeileninterpreter benutzt wird.

Übrigens: mit "set c" könnt ihr den Wert selber auf Kommandozeile überprüfen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Problem mit ShellExecute und SUBST

  Alt 29. Mär 2005, 16:58
Moin Zusammen,

für den Fall, dass eine Umleitung mit > nicht funktioniert einfach mal mit 2> probieren, also z.B. subst 2> ....
Wird keine Zahl, oder eine 1 unmittelbar vor dem > angegeben, so wird die Ausgabe von StdOut umgeleitet, also die "normalen" Meldungen, bzw. Ausgaben des Programmes.
Nimmt man hingegen 2> so wird alles was das Programm über StdError ausgibt umgeleitet.
Hiermit lassen sich dann also Fehlermeldungen aufzeichen/umleiten.

Diese Umleitungen lassen sich auch kombinieren, z.B.:

Code:
xcopy 1> c:\temp\Meldung.txt 2> c:\temp\Fehler.txt
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz