chapolote
Goto Top

Per Batch neue Batch schreiben

Hallo,

folgende Aufgabenstellung bereitet mir Kopfzerbrechen:

ich möchte in einer Batch-Ausführung eine neue Batch-Datei erstellen.
Darin möchte ich, daß die Ausgabe von psloglist.exe in eine Textdatei geschrieben wird.
Ich hab folgendes versucht:

echo psloglist.exe \\%whsname% -u "%whsuser%" -p %whspass% -n 1 -i 2049 homeserver > psloglist.txt >> C:\WhsRemoteNotification\createmail.bat

d.h. psloglist.exe \\%whsname% -u "%whsuser%" -p %whspass% -n 1 -i 2049 homeserver > psloglist.txt soll danach in der createmail.bat stehen

Das ganze funktioniert leider nicht, es wird mir zwar die Zeile in die createmail.bat geschrieben, aber ohne das "> psloglist.txt"

Habe schon versucht, mit Anführungszeichen oder Klammern zum Erfolg zu kommen, auch ohne Erfolg.

Wie kann ich das umsetzen?
Bin für jeden Tip dankbar... face-wink

Gruß,
chapolote

Content-Key: 91243

Url: https://administrator.de/contentid/91243

Printed on: April 19, 2024 at 17:04 o'clock

Mitglied: 60730
60730 Jul 03, 2008 at 14:34:56 (UTC)
Goto Top
Servus,

probier es mal so herum:

echo psloglist.exe \\%whsname% -u "%whsuser%" -p %whspass% -n 1 -i 2049 homeserver ^> psloglist.txt ^>> C:\WhsRemoteNotification\createmail.bat  

Gruß
Member: chapolote
chapolote Jul 03, 2008 at 14:44:47 (UTC)
Goto Top
Super, funktioniert fast... face-smile
Lediglich das letzte "Dächchen" muß direkt nach psloglist.txt stehen, ansonsten schreibt er das erste < noch mit in die Datei.
Es sieht also so aus:

echo psloglist.exe \\%whsname% -u "%whsuser%" -p %whspass% -n 1 -i 2049 homeserver ^> psloglist.txt^ >> C:\WhsRemoteNotification\createmail.bat  

Herzlichsten Dank,
chapolote
Member: Biber
Biber Jul 07, 2008 at 11:35:58 (UTC)
Goto Top
Moin chappi,

ich war noch ein bisschen zögerlich, diesen Beitrag zu schliessen, weil...
ansonsten schreibt er das erste > noch mit in die Datei.
Dat stimmt.
Lediglich das letzte "Dächchen" muß direkt nach psloglist.txt stehen,
Dat nich.

Das zweite Caret ist T-moBeil sicherlich versehentlich mit reingerutscht, okay.
Aber das deshalb ein ">" in die Datei geschrieben wird,liegt an diesem Verhalten beim Zusammenspiel von "echo" und "redirection":
[Demo am CMD-Prompt]
>echo bla>text.txt blubb
(=13:04:46  D:\temp=)
>type text.txt
bla blubb
Wie Du siehst, wird eventueller Echo-Text NACH dem Zielnamen stillschweigen mit umgeleitet... *axelzuck*
Um das als Bug zu bezeichnen, reicht es nicht und als Feature fällt mir auch kein sinnvoller Anwendungsfall ein... ist also wohl der übliche Praktikantenpfusch.

Also meine Anmerkung:
Das zweite Caret muss nicht irgenwo anders hin, sondern zurück in die Vorratsdose.
Hier brauchst Du es gar nicht.
Denn mit dem jetzigen zweiten Caret weist Du den CMD-Interpreter an das Leerzeichen zwischen "psloglist.txt" und ">>" als einfaches Leerzeichen zu betrachten.
Eine Herausforderung, der selbst ein M$-CMD-Interpreter gewachsen sein sollte..

So oder so - lass das zweite Caret weg und entscheide Dich,
ob Du immer eine neue Datei anlegen willst (ein ">") oder an eine bestehende anfügen willst (zwei ">", also ">>").
Anfügen macht hier wenig Sinn, die Datei soll ja neu angelegt werden.

Grüße
Biber
Member: chapolote
chapolote Jul 07, 2008 at 20:46:22 (UTC)
Goto Top
Hallo Bibbi,

chappi ist ja wohl der Hammer, aber schmunzeln mußt ich ja schon... face-smile

Hab mir das mit dem zweiten Caret (DAU-Deutsch: Dächchen face-wink )schon gedacht, habs aber einfach mal drin gelassen, und jetzt, nach Deiner schönen Erklärung, könnt man ja einfach sagen: doppelt gemobbelt hält besser. Aber Spaß beiseite: ich nehms wieder raus...

gestolpert bin ich dann eher darüber, das ^>> auch nicht das gewünschte Ergebnis brachte. Was funktioniert ist ^> zum Anlegen einer neuen Datei und ^>^> zum Anfügen an eine Bestehende. Macht in meinem Fall auch Sinn, da ich so nebenbei auch noch ne Chronik schreibe.

Herzlichsten Dank für die freundliche und kompetente Hilfe von Euch Beiden!!!

Grüße,
Joe (alias chapolote oder chappi oder was man sonst noch so seinem Hund zum Fressen gibt) face-smile face-smile