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, 7226 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
Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(3)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(10)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (11)

Frage von keine-ahnung zum Thema Exchange Server ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (10)

Frage von ahaeuser zum Thema Windows Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...