AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme BAT/CMD > Umleitung der Ausgabe
Thema durchsuchen
Ansicht
Themen-Optionen

BAT/CMD > Umleitung der Ausgabe

Ein Thema von himitsu · begonnen am 5. Apr 2012 · letzter Beitrag vom 5. Apr 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#1

BAT/CMD > Umleitung der Ausgabe

  Alt 5. Apr 2012, 10:48
Betriebssystem: Win 7
Moin,

ich hab da grade ein eigenartiges Problemchen.
Die Umleitung > und >> funktioniert nicht mehr, hier auf 'nem Windows Server 2008.

Sogar bei Befehlen wie RD wird die Fehlermeldung nicht in die Zieldatei geschrieben, sondern landet weiterhin im Fenster.
(sonst hätte ich noch vermuten können, es liegt an der aufgerufenen EXE)

Original wird die ganze Datei umgeleitet, über ShellExecute mit %ComSpec% /C xyz.bat > abc.log , aber auch direkt in der Komandozeile (CMD) funktioniert ein xyz.bat > abc.log nicht.
Es werden immer nur die Befehle der BAT in die Logdatei geschrieben, aber nicht die Meldungen/Ausgaben der Programme.


Selbst wenn ich versuche hinter jeden einzelnen Befehl, in der BAT, die Umleitung zu schreiben, gibt es keinen Unterschied.
Das Einzige, was funktioniert, ist ECHO. Dessen Ausgaben landen in dem Log.


Ist da vielleicht irgendwas an der Befehlerweiterung falsch eingestellt,
oder wieso funktioniert das nicht?

Ach ja, ob ich die Datei *.bat oder *.cmd nenne, macht keinen Unterschied
und es werden überall nur absoluter Pfade verwendet.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 5. Apr 2012 um 10:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: BAT/CMD > Umleitung der Ausgabe

  Alt 5. Apr 2012, 10:54
Hast Du ein Beispiel

DIR > C:\temp\Dir.txt

in eine test.bat tut bei mir Server 2008 wie erwartet...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#3

AW: BAT/CMD > Umleitung der Ausgabe

  Alt 5. Apr 2012, 11:10
BackUp.bat
Code:
RD /S /Q H:\BackUp\120330
DEL /Q H:\BackUp\120401\*09.sql
DEL /Q H:\BackUp\120401\*15.sql
E:\EXE\pg_dump --disable-triggers -i -f H:\BackUp\120404\ab2.18.sql -t ab2 --column-inserts -F p -a -h localhost -p 5432 -S xxx -U xxx xxx
E:\EXE\pg_dump --disable-triggers -i -f H:\BackUp\120404\ab2_param.18.sql -t ab2_param --column-inserts -F p -a -h localhost -p 5432 -S xxx -U xxx xxx
...
BackUpCall.bat
Code:
"E:\EXE\BackUp\BackUp.bat" > "E:\EXE\BackUp\BackUp.1204041827.Log"
Delphi-Quellcode:
ShellExecute(ParentWindow, nil, PChar('C:\Windows\System32\cmd.exe'),
  Pointer('/C "E:\EXE\BackUp\BackUp.bat" > "E:\EXE\BackUp\BackUp.1204041827.Log"'), PChar(ExtractFileDir(ParamStr(0))), SW_NORMAL);

//oder
ShellExecute(ParentWindow, nil, PChar('E:\EXE\BackUp\BackUpCall.bat'), nil, PChar(ExtractFileDir(ParamStr(0))), SW_NORMAL);

// oder über die Komandozeile (macht keinen Unterschied, ob ShellExecute oder so)
"E:\EXE\BackUp\BackUp.bat" > "E:\EXE\BackUp\BackUp.1204041827.Log"

// bzw.
"E:\EXE\BackUp\BackUpCall.bat"

Es landen jeweils nur die Befehle aus der BAT in der Log, aber Fehlermeldungen ala "Das System kann die angegebene Datei nicht finden." (DEL kann nichts löschen, da nichts mehr da ist) und die Meldungen der pg_dump.exe landen im CMD-Fenster.

[Edit]
DIR > C:\temp\Dir.txt wird umgeleitet, ebenso ein bei DIR , wenn die ausgabe der BAT umgeleitet wird,
aber scheinbar die "Fehlermeldungen" des RD und die Fehler-/Statusmeldungen der EXE nicht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 5. Apr 2012 um 11:15 Uhr)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: BAT/CMD > Umleitung der Ausgabe

  Alt 5. Apr 2012, 11:12
Hallo,

werden die Ausgaben auf einer anderen Ebene (Standard error) ausgegeben und nicht auf standard output?
Wenn ja, musst Du diese auch umleiten.

dir k:\ 2> bla.txt wird die Fehlermeldung nach bla.txt geschrieben.

Grüße
Klaus
Klaus

Geändert von Klaus01 ( 5. Apr 2012 um 11:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

AW: BAT/CMD > Umleitung der Ausgabe

  Alt 5. Apr 2012, 11:13
Klappt es, wenn Du innerhalb der aufgerufenen Batchdatei umlenkst (nach %1 oder wie das da ging)?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: BAT/CMD > Umleitung der Ausgabe

  Alt 5. Apr 2012, 11:22
werden die Ausgaben auf einer anderen Ebene (Standard error) ausgegeben und nicht auf standard output?
Wenn ja, musst Du diese auch umleiten.
Und wie macht man das?
Bei CreateProcess ging das glaub ich irgendwie (muß ich nochmal nachgucken), aber wie macht man das hier?

Klappt es, wenn Du innerhalb der aufgerufenen Batchdatei umlenkst (nach %1 oder wie das da ging)?
Nee, das hab ich schon probiert (wie erwähnt).

Hier mal mein Versuch und außer den ECHOs steht nix im Log.
Code:
SET DUMP=E:\EXE\pg_dump
SET PARAM1=--disable-triggers -i
SET PARAM2=--column-inserts -F p -a -h localhost -p 5432 -S xxx -U xxx xxx
SET DEST=H:\BackUp\120401
SET LOG=E:\EXE\BackUp\ackUp.1204041827.Log

ECHO Backup xxx vom xx.xx.xxxx > %LOG%

ECHO. >> %LOG%
ECHO Lösche xyz >> %LOG%
RD /S /Q H:\ProdatSQL\BackUp_\120330 >> %LOG%

ECHO. >> %LOG%
ECHO Lösche xyz >> %LOG%
DEL /Q %DEST%\*09.sql >> %LOG%

ECHO. >> %LOG%
ECHO Lösche xyz >> %LOG%
DEL /Q %DEST%\*15.sql >> %LOG%

ECHO. >> %LOG%
ECHO Backuppe Tabelle xyz >> %LOG%
%DUMP% %PARAM1% -f %DEST%\ab2.18.sql -t ab2 %PARAM2% >> %LOG%

ECHO. >> %LOG%
ECHO Backuppe Tabelle xyz >> %LOG%
%DUMP% %PARAM1% -f %DEST%\ab2_resultparam.18.sql -t ab2_resultparam %PARAM2% >> %LOG%

ECHO. >> %LOG%
ECHO Backuppe Tabelle xyz >> %LOG%
%DUMP% %PARAM1% -f %DEST%\ab2_resultparam_log.18.sql -t ab2_resultparam_log %PARAM2% >> %LOG%
Also ECHO und DIR geht, aber sonst bisher nichts
[Edit]
DIR > C:\temp\Dir.txt wird umgeleitet, ebenso ein bei DIR , wenn die ausgabe der BAT umgeleitet wird,
aber scheinbar die "Fehlermeldungen" des RD und die Fehler-/Statusmeldungen der EXE nicht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: BAT/CMD > Umleitung der Ausgabe

  Alt 5. Apr 2012, 11:26
werden die Ausgaben auf einer anderen Ebene (Standard error) ausgegeben und nicht auf standard output?
Wenn ja, musst Du diese auch umleiten.
Und wie macht man das?
Ein Beispiel ist hier zu finden:
http://sites.google.com/site/christi...d-out-umleiten

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

AW: BAT/CMD > Umleitung der Ausgabe

  Alt 5. Apr 2012, 11:27
Und bei
Code:
RD /S /Q H:\ProdatSQL\BackUp_\120330 >> %LOG% 2>&1
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#9

AW: BAT/CMD > Umleitung der Ausgabe

  Alt 5. Apr 2012, 11:41
Code:
2>&1
sieht zwar irgendwie zu krypisch aus, aber es funktioniert.

Ich kann mich aber nicht erinnern, daß ich früher mal solche Probleme hatte.
Aber ich glaub das letzte Mal hatte ich sowas noch unter Win2000/XP gemacht, vielleicht war's damals ja anders.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

AW: BAT/CMD > Umleitung der Ausgabe

  Alt 5. Apr 2012, 11:44
http://www.microsoft.com/resources/d....mspx?mfr=true
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:47 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