Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Prozent Variable mit Leerzeichen übergeben

Frage Entwicklung Batch & Shell

Mitglied: pbelcl

pbelcl (Level 1) - Jetzt verbinden

29.11.2007, aktualisiert 02.12.2007, 7048 Aufrufe, 2 Kommentare

Aufruf durch call trennt bei leerzeichen ab

Hi Leute,
Ich muß in diversen Batchroutinen automatisiert Emails versenden. Dazu habe ich gbmail.exe ausgewählt und eine bat geschrieben die sich email_send.bat nennt:

01.
if %1!==! goto fehler 
02.
if %2!==! goto fehler 
03.
if %3!==! goto fehler 
04.
 
05.
gbmail -to %1 -h smtp.sendserver.com -from %2@test.at -s - %3 
06.
goto end 
07.
 
08.
:fehler 
09.
echo Sende_mail wurdemit falchen Parametern aufgerufen! 
10.
goto end 
11.
 
12.
:end
Das Mail möchte ich dann aus vielen anderen Batchdateien verschicken die ca. so aussehen:

01.
sende_mail ziel@adresse.at %~n0 "Text der angehängt werden soll"
%1 soll die Zieladresse enthalten
%2 soll als Absender die aufgerufene Batch Datei sein und
%3 ein beliebiger Text

Funktioniert alles soweit gut, aber der Parameter %3 wird nicht komplett übergeben. Egal ob ich ihn in "" schreibe oder nicht, in meinem Beispiel oben kommt in der Variable %3 nur "Text" an!

Hat jemand einen Tip wie ich den gesamten Text in " in die %3 reinbekomme?
Mitglied: Biber
30.11.2007 um 09:09 Uhr
Moin pbelcl,

kann ich weder optisch noch mit einem Test-Batch nachvollziehen.
01.
::---%temp%\mailtest.bat 
02.
@echo off 
03.
if "%~1"=="" goto fehler 
04.
if "%~2"=="" goto fehler 
05.
if "%~3"=="" goto fehler 
06.
 
07.
echo gbmail -to 1[%1] -h smtp.sendserver.com -from 2[%2]@test.at -s -3[%3] 
08.
goto :eof 
09.
 
10.
:fehler 
11.
echo %~n0 wurde mit falschen Parametern aufgerufen!
Ausgabe:
01.
>%temp%\mailtest eins zwei "und das soll drei sein" 
02.
gbmail -to 1[eins] -h smtp.sendserver.com -from 2[zwei]@test.at -s -3["und das soll drei sein"] 
03.
 
04.
(= 9:07:14  D:\temp=) 
05.
>%temp%\mailtest eins zwei 
06.
mailtest wurde mit falschen Parametern aufgerufen
Selbes Ergebnis, wenn ich "Call %temp%\mailtest ...." aufrufe.

Was machst Du anders?

Grüße
Biber
Bitte warten ..
Mitglied: pbelcl
02.12.2007 um 17:38 Uhr
Ich hab jetzt mal die Batch Dateien vereinfacht, damit es etwas übersichtlicher wird:

Ich habe ein aufruf Batchfile wo nur eine Zeile drinnsteht:
01.
sende_mail user@domaene.at %~n0 "Text der angehängt werden soll"
und dann das "sende_mail.bat" batch


01.
@echo off 
02.
if %1!==! goto end 
03.
if %2!==! goto end 
04.
if %3!==! goto end 
05.
 
06.
gbmail -to %1 -h mailserver.at -from %2@domain.at -s "Bemerkung lautet - %3" 
07.
goto end 
08.
 
09.
:end
Tja, was mache ich anders....
Ehrlich gesagt keine Ahnung?
Ich weiß nur wenn ich in meinem Aufruf Batch
01.
sende_mail user@domaene.at %~n0 "Text_der_angehängt_werden_soll"
eingebe dann klappts, eh klar ...

Aber auch wenn ich in EINEM Batch (ohne CALL) mache:
01.
gbmail -to user@domaene.at-h mailserver.at -from %~n0@domain.at -s "Bemerkung lautet - Text der angehängt werden soll"
... klappt es OBWOHL am Ende Leerzeichen drin sind.
Und das verstehe ich nun nicht ...
Ist vielleicht so eine Geschichte mit den Anführungszeichen oder so?

Man kann das natürlich auch in einer Zeile abhandeln, ich wollte nur eine einheitliche "Mailsende Batch" für unterschiedliche Ziele haben. Ist aber nicht so wichtig ......
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

Batch & Shell
gelöst Batch Variable setzten mit Leerzeichen (3)

Frage von Marlon1 zum Thema Batch & Shell ...

Batch & Shell
gelöst Leerzeichen wird nicht in Variable geschrieben (1)

Frage von Saschaaaaa zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...