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, 7222 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 ..
Ä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 ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (16)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...