python - oprettelse af en logfil fra en række batchfile-eksekverbare filer

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at oprette en stdout, stderr, og ekko logfilen.


I en opgaveplanlægger kalder jeg en batchfil. sig bat1.bat
bat1.bat kalder andre batch-filer. sig bat1a.bat, bat1b.bat og så videre.


Hver af disse filer kalder python scripts: python \ UNCshare \ folder \ script.py jobnavn (der er 1200 af disse opkald spredt over batchfilerne.


så for eksempel:


task scheduler calls bat1.bat
bat1.bat
|-bat1a.bat
 |-python \uncsharefolderscript.py jobname
 |-python \uncsharefolderscript.py jobname
|-bat1b.bat
 |-python \uncsharefolderscript.py jobname
 |-python \uncsharefolderscript.py jobname
etc....


Hvordan fortæller jeg dem alle at sende til samme logfil. og for det andet, hvordan sætter jeg logfilens navn, så jeg kan bruge en dato i filnavnet?


Tak!

Bedste reference


Jeg ved ikke en god måde at gøre dette i Windows-batch-filer.
Det er meget lettere at gøre, hvis du skulle bruge en anden teknologi. Da du allerede bruger python, kan du have et python script kaldet af opgaveplanlæggeren, at:



  • Åbn en fil med datoen i filnavnet

  • brugt subprocess.Popen til at køre dine batch-filer med stderr og stdout omdirigeret til den logfil



Jeg tror, ​​at alt, hvad du ekko i dine batch-filer, vil gå til stdout