Dateien per Batch verschicken?

...komplette Frage anzeigen

3 Antworten

So  jetzt  hatte  ich  meinen Kaffee und  die zweite Option.

Der  Reihe nach.
Ich weiß  nicht wie  Du  normalerweise ein  zip erzeugst (ich  nutze 7zip).
Wenn ich eine Batch für andere schreibe generiere  ich ihnen ein kleines VisualBasic-script,  welches  das erledigt.
...so funktioniert  die Batch immer...
Du musst  nur  in der Zeile 3...
call :zip_it "D:\myFolder\*.*"    %myzip%
... den Quellpfad ändern.

Versendet  wird die Datei per Email .
Das erledigt eine Zeile  Powerscript. (im folgenden Code wird  die  Zeile nur durch linefeed-masking   übersichtlicher..)
Natürlich meldet Powershell einen Fehler,  ich habe  einen nicht existenten Smtp-Server eingetragen (trag den server  von deinem Provider oder sonstwem ein).
Auch Empfänger und Absender sind falsch...

 email_send.cmd:

@echo off
set "myzip="attach.zip"
call :zip_it "D:\myFolder\*.*" %myzip%
rem https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.utility/Send-MailMessage
rem https://stackoverflow.com/questions/709635/sending-mail-from-batch-file
powershell -ExecutionPolicy ByPass -Command Send-MailMessage ^
-SmtpServer server.address.name ^
-To someone@what.ever ^
-From erzesel@possibly.fake ^
-Subject Testing ^
-Body 'meine Dateien im Anhang... bye' ^
-Attachments %myzip%
pause
exit /b

:zip_it
:::Kopression::::
set source= "%~1"
set tempdir=%temp%\_cszip
mkdir %tempdir%
xcopy %source% %tempdir%
rem zipscript generieren.
echo Set objArgs = WScript.Arguments > %temp%\_zipIt.vbs
echo InputFolder = objArgs(0) >> %temp%\_zipIt.vbs
echo ZipFile = objArgs(1) >> %temp%\_zipIt.vbs
echo CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar) >> %temp%\_zipIt.vbs
echo Set objShell = CreateObject("Shell.Application") >> %temp%\_zipIt.vbs
echo Set source = objShell.NameSpace(InputFolder).Items >> %temp%\_zipIt.vbs
echo objShell.NameSpace(ZipFile).CopyHere(source) >> %temp%\_zipIt.vbs
echo wScript.Sleep 2000 >> %temp%\_zipIt.vbs
rem ...und aufrufen
cscript %temp%\_zipIt.vbs "%tempdir%" "%~2"
rem aufraeumen
del %temp%\_zipIt.vbs
rmdir /s /q "%tempdir%"
exit /b

mfg

die einfachste  Variante als "Briefkasten" wäre  ein für  den Empfänger  freigegebener Ordner auf einer Cloud (dropbox , GoogleDrive etc).
Dann brauchst Du lediglich  Datei au Deinem Rechner in den betreffenden Ordner  auf deinem Rechner kopieren, den Rest erledigt die Sychronisierung der Cloudsoftware.

Würde sagen einfach den Ordner zu ner ZIP datei (oder ähnliches) und diese dann per Email versenden. Von der email aus kannst du diese Datei dann von überall wieder herunterladen

Mondgesicht123 14.07.2017, 00:19

dazu: Anleitungen gibt's genügend bei google

0
DerHumorvolle 14.07.2017, 00:20

Kann denn dieser Vorgang völlig automatisch über die BATCH ausgeführt werden? Mein Ziel ist es, das gesamte Prozedere komplett ohne nötige Einwirkung des Nutzers abzuwickeln.

0
Mondgesicht123 14.07.2017, 00:24

da bin ich leider überfragt, aber viel Glück dabei, hilfreichere antworten zu finden

0

Was möchtest Du wissen?