Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

CMD - gibt es eine datei im ordner wenn ja dann bitte als anhang senden

Frage Microsoft Windows Tools

Mitglied: donald86

donald86 (Level 1) - Jetzt verbinden

23.09.2010, aktualisiert 17:37 Uhr, 4214 Aufrufe, 8 Kommentare

Hallo leute ich mache gerade eine CMD-Datei und habe das Problem das ich die dateien nicht einzeln auslesen kann ( datei für datei). ich habe es mit for und mit if exist schleifen versucht aber irgendwie kam ich nicht weiter.

Ziel ist es das für jede Datei einzeln welche im "ausgangs" ordner landet eine email gesendet wird (per Blat) und sie danach in den ordner "versendet" geschoben wird. wenn keine dateien mehr vorhanden sind ist das Script fertig.

mein Beispiel bis jetzt:

ich habe einen Ordner Ausgang mit folgendem Inhalt
-tabelle1.xlsx
-tabelle2.xlsx
-tabelle3.xlsx
-text.txt
-word.docx

und einen versendet Ordner ohne inhalt

und mein CMD Script :

:START
REM Abfrage gibt es überhaupt Dateien in Ausgangsordner?
if exist C:Pfad\ausgang\*.xlsx goto SEND_EXCEL
if exist C:Pfad\ausgang\*.txt goto SEND_TXT
if exist C:Pfad\ausgang\*.docx goto SEND_WORD
goto ENDE

REM Datei im Email senden und in Versendet - Ordner verschieben + Loop
:SEND_EXCEL
Blat -install Host. meine@email.ch
Blat "C:Pfad\body.txt" -to meine@email.ch -server smtp.server.ch -attach "C:Pfad\ausgang\*.xlsx" -debug -timestamp -log blatSMTPlog.txt -subject "Blat Email-Test Excel"
move C:Pfad\ausgang\*.xlsx C:Pfad\versendet
goto START

:SEND_TXT
Blat -install Host. meine@email.ch
Blat "C:Pfad\body.txt" -to meine@email.ch -server smtp.server.ch -attach "C:Pfad\ausgang\*.txt" -debug -timestamp -log blatSMTPlog.txt -subject "Blat Email-Test TEXT"
move C:Pfad\ausgang\*.txt C:Pfad\versendet
goto START

:SEND_WORD
Blat -install Host. meine@email.ch
Blat "C:Pfad\body.txt" -to meine@email.ch -server smtp.server.ch -attach "C:Pfad\ausgang\*.docx" -debug -timestamp -log blatSMTPlog.txt -subject "Blat Email-Test WORD"
move C:Pfad\ausgang\*.docx C:Pfad\versendet
goto START


REM Script Springpunkt um Das Script ohne Aktion zu Beenden
:ENDE
exit


Mit diesem Beispiel bekomme ich aber drei Emails und zwar für jeden Dokumenten typ eine. leider werden aber z.b. die Excel tabellen zusammen genommen und in einem Email geschickt diese sollten aber auch einezeln in seperaten emails versendet werden.

danke für die Hilfe gruss Donald
Mitglied: 60730
23.09.2010 um 18:10 Uhr
servus,

das könnte man so umschreiben:
(allerdings auch das ganze noch weiter "eindampfen" - doppelte / dreifache Befehlszeilen, wo nur eine "Variable" variabel ist - kann man schöner bauen)

01.
:START 
02.
REM Abfrage gibt es überhaupt Dateien in Ausgangsordner? 
03.
if exist C:\Pfad\ausgang\*.xlsx for %%a in (C:\Pfad\ausgang\*.xlsx) do ( 
04.
                         call :SEND_mail "Blat Email-Excel" 
05.
                         move C:\Pfad\ausgang\%%a C:\Pfad\versendet 
06.
07.
if exist C:\Pfad\ausgang\*.txt  for %%a in (C:\Pfad\ausgang\*.txt) do ( 
08.
                         call :SEND_mail "Blat Email-Test TEXT" 
09.
                         move C:\Pfad\ausgang\%%a C:\Pfad\versendet 
10.
11.
if exist C:\Pfad\ausgang\*.docx  for %%a in (C:\Pfad\ausgang\*.docx) do ( 
12.
                        call :SEND_mail "Blat Email-Test WORD" 
13.
                        move C:\Pfad\ausgang\%%a C:\Pfad\versendet 
14.
15.
goto ENDE 
16.
 
17.
REM Datei im Email senden und in Versendet - Ordner verschieben + Loop 
18.
:SEND_mail 
19.
Blat -install Host. meine@email.ch 
20.
Blat "C:\Pfad\body.txt" -to meine@email.ch -server smtp.server.ch -attach "C:\Pfad\ausgang\%%a" -debug -timestamp -log blatSMTPlog.txt -subject %1 
21.
goto eof 
22.
 
23.
REM Script Springpunkt um Das Script ohne Aktion zu Beenden 
24.
:ENDE 
25.
exit
ungetestet...und ein paar von dir fehlende \ immer bei C:\Pfad\ ergänzt

Gruß

edit: @bastla

  • isch hätt jetzt mal das /f us däm Schläyffsche ruusjetan abba wat de mir mit de if exischd vertelle mägst hädd isch nüschd jerafft
sorry aber isch hädd grad nen Kaffe mit CMH jeteilt und bin noch jaanz uffjedräht..
Bitte warten ..
Mitglied: bastla
23.09.2010 um 18:23 Uhr
Hallo donald86 und willkommen im Forum, hallo T-Mo!

Nur als Denkanstoß hinsichtlich des "if exist": Der "do"-Teil der Schleife
for %%a in ("C:\Pfad\ausgang\*.xlsx") do
wird für jede gefundene xlsx-Datei einmal ausgeführt - daher wie oft, wenn keine gefunden wird?

Grüße
bastla

[Edit] @T-Mo: OK, Auflösung : Das "if exist" ist hier schlicht überflüssig, da, wenn es keine xlsx-Dateien gibt, die Schleife ohnehin gleich wieder verlassen wird. [/Edit]
Bitte warten ..
Mitglied: donald86
24.09.2010 um 08:07 Uhr
Wenn keine datei gefunden wird soll das script sich beenden wäre die idee.

Ich würde das Script dan mehrmals pro tag laufen lassen usw
Bitte warten ..
Mitglied: donald86
24.09.2010 um 08:19 Uhr
hey super timo 5 emails bekomme ich nun - einziger fehler noch das attachment kommt nicht mit und die daten werden nicht gemovet.

siegt so aus als wäre das %%a für das script irgendwie nichts handfestes
Bitte warten ..
Mitglied: bastla
24.09.2010 um 08:26 Uhr
Hallo donald86!
Wenn keine datei gefunden wird soll das script sich beenden wäre die idee.
Dein "goto ENDE" sorgt ja ohnehin dafür ...
Um tatsächlich für jede einzelne Datei eine eigene Mail zu erhalten, könnte das Ganze (ungetestet) eher so aussehen:
01.
:START 
02.
Blat -install Host. meine@email.ch 
03.
 
04.
for %%a in (C:\Pfad\ausgang\*.xlsx) do ( 
05.
    call :SEND_mail "Blat Email-Excel" "%%a" 
06.
    move "%%a" "C:\Pfad\versendet\" 
07.
08.
for %%a in (C:\Pfad\ausgang\*.txt) do ( 
09.
    call :SEND_mail "Blat Email-Test TEXT" "%%a" 
10.
    move "%%a" "C:\Pfad\versendet\" 
11.
12.
for %%a in (C:\Pfad\ausgang\*.docx) do ( 
13.
    call :SEND_mail "Blat Email-Test WORD" "%%a" 
14.
    move "%%a "C:\Pfad\versendet\" 
15.
16.
goto ENDE 
17.
 
18.
REM Datei im Email senden und in Versendet - Ordner verschieben + Loop 
19.
:SEND_mail 
20.
Blat "C:\Pfad\body.txt" -to meine@email.ch -server smtp.server.ch -attach %2 -debug -timestamp -log blatSMTPlog.txt -subject %1 
21.
goto :eof 
22.
 
23.
REM Script Springpunkt um Das Script ohne Aktion zu Beenden 
24.
:ENDE 
25.
::exit ist unnötig
Grüße
bastla
Bitte warten ..
Mitglied: donald86
24.09.2010 um 08:36 Uhr
Das ist es Bastlaaa YEAAA!!!

Ihr seid doch ali "GAILI SIECHEEE "

CH-Deutsch für Coole jungs

Danke viel mal
Bitte warten ..
Mitglied: donald86
24.09.2010 um 08:38 Uhr
p.s. wofür steht jetz den das "for %%a" genau?
Bitte warten ..
Mitglied: bastla
24.09.2010 um 12:27 Uhr
Hallo donald86!
wofür steht jetz den das "for %%a" genau?
Damit wird jede zum Muster in der Klammer passende Datei (mit ihrem vollständigen Pfad) als "%%a" zur Verfügung gestellt - es kann aber nur im "do"-Teil der Schleife unter dieser Variablen darauf zugegriffen werden, weshalb sie beim Aufruf des Unterprogramms ":SEND_mail" als (zweiter) Parameter übergeben (und in ":SEND_mail" als %2 übernommen) werden muss ...

Mehr dazu: for /?

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Via CMD Dateien in Ordner sortieren
gelöst Frage von tkt2208Batch & Shell10 Kommentare

Hallo zusammen, ich habe in einem Ordner sehr viele Dateien mit gleichem Namen die sich nur am Ende durch ...

Exchange Server
Sender von einer Mail mit einem Anhang suchen
gelöst Frage von TheHawkExchange Server3 Kommentare

Guten Tag, Es ist so dass bei uns ein User Mails intern und oder extern verschickt hat welche er ...

Exchange Server
Senden als öffentlicher Ordner ohne Outook
Frage von linkitExchange Server5 Kommentare

Hallo, hat jemand eine Idee. Von Outlook aus kann man im Auftrag eines öffentlichen Ordners senden. Es gibt aber ...

Windows 7
Ordnerberechtigungen von einem Ordner zu einem anderen Ordner kopieren via cmd-powershell
Frage von 121103Windows 71 Kommentar

Hi zusammen, ich habe folgendes Problem und zwar wird ein Ordner "XXX" benötigt in dem viele User nochmals einen ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 6 StundenWindows 101 Kommentar

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 7 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 22 StundenInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...