marioschaper
Goto Top

Per Batch Werte Kommagetrennt in eine Variable schreiben

Hallo Zusammen,

ich suche eine Möglichkeit wie ich Werte (in dem Fall Dateinamen) Kommagetrennt in eine Variable schreiben kann.
Hintergrund ist, dass ich versuche mittels Blat eine Mail mit mehrere Dateien im Anhang zu versenden.
Die Dateien (alles PDF) werden bis zu einer bestimmten Zeit in ein Verzeichnis geschrieben. Aus diesem Verzeichnis will ich mittels Batch die Dateinamen auslesen und an Blat übergeben.

bis jetzt habe ich es hinbekommen, die vorhandenen Dateinamen in eine zusätzliche Datei zu schreiben:

for %a in (C:\Temp\*.pdf) do @echo %~nxa >> anhaenge.txt

Den 2. Teil den ich hinbekommen habe (dem Internet sei dank) ist das Mail mit dem Inhalt der anhaenge.txt via Blat abschicken zu lassen:

blat.exe anhaenge.txt -server mailserver.unserefirma.local -t ziel@unserefirma.de -f sender@unserefirma.de -s Rechnung -attach %PDFFILES% 

jetzt müsste ich es irgendwie hinbekommen, dass die Variable %PDFFILES% mit den einzelnen Werten aus anhaenge.txt durch ein Komma getrennt gefüllt wird - nur WIE?

Content-Key: 146799

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

Printed on: April 25, 2024 at 14:04 o'clock

Member: Miyamoto
Miyamoto Jul 13, 2010 at 11:58:40 (UTC)
Goto Top
Hi,
was du machen kannst ist das:
@echo off & setlocal EnableDelayedExpansion

for %%a in (C:\Temp\*.pdf) do (

SET PDFFILES=!PDFFILES!,%%~nxa

)
set PDFFILES=%PDFFILES:~1,-1%
echo %PDFFILES%

Gruß Miyamoto
Member: MarioSchaper
MarioSchaper Jul 13, 2010 at 12:19:56 (UTC)
Goto Top
oh man, ich liebe das Internet und seine freiwilligen Helferlein!!!
DANKE

ich habe das ganze noch um set PDFFILES=%PDFFILES: =% ergänzt, dann sind alle Leerzeichen aus der PDFFILES Variable weg

@echo off & setlocal EnableDelayedExpansion 
for %%b in (C:\Temp\*.*) do @echo %%~nxb >> anhaenge.txt
for %%a in (C:\Temp\*.*) do ( 
SET PDFFILES=!PDFFILES!,%%~nxa 
) 
set PDFFILES=%PDFFILES:~1,-1% 
set PDFFILES=%PDFFILES: =% 

blat.exe anhaenge.txt -server kermit.firma.local -t ich@firma.de -f info@firma.de -s Rechnung -attach %PDFFILES%
Member: Miyamoto
Miyamoto Jul 13, 2010 at 12:46:40 (UTC)
Goto Top
Hi,
und warum machst du jetzt 2 Schleifen????
Das ganze kannst du doch auch in einer machen und zwar so:
@echo off & setlocal EnableDelayedExpansion 
for %%a in (C:\Temp\*.*) do ( 
SET PDFFILES=!PDFFILES!,%%~nxa 
echo %%~nxa >> anhaenge.txt
) 
set PDFFILES=%PDFFILES:~1,-1% 
set PDFFILES=%PDFFILES: =% 

blat.exe anhaenge.txt -server kermit.firma.local -t ich@firma.de -f info@firma.de -s Rechnung -attach %PDFFILES%

Gruß Miyamoto
Member: MarioSchaper
MarioSchaper Jul 13, 2010 at 12:50:22 (UTC)
Goto Top
gute, berechtigte Frage ^^
ich würde es einfach mal als - "weil es so auch funktioniert" abstempeln. Aber ich hab das jetzt natürlich bei mir abgeändert!
Danke nochmal