Archiv verlassen und diese Seite im Standarddesign anzeigen : Parameterübergabe und Umlaute
FMS-Master
02.02.2004, 17:21
Hallo Gruppe!
Ich hoffe hier ist jemand der mir helfen kann.
Ich habe in der letzten Zeit einiges an
Batches für Parameterübergabe geschrieben,
und die laufen auch einwandfrei.
Nur habe ich das lästige Problem das Die umlaute (äöüß etc.)
in komischen zeichen wiedergegeben werden in der txt datei.
Da das etwas unschön zu lesen ist wäre ich froh wenn mir
jemand helfen könnte. Mit bestem dank
FMS-Master
Quietschphone
02.02.2004, 17:29
Hallo,
evtl. mal die Suchfunktion bequemen: http://funkmeldesystem.de/foren/showthread.php?s=&threadid=5345&highlight=%2Aumlaut%2A
friend112
03.02.2004, 17:25
Hatte das selbe Problem!
Suche einmal in Google unter den Begriff "ansiasci" damit kriegst du ein Befehlszeilenprogramm, dass den ASCII Code in ANSI Umsetzt. Du mußt es nur in deiner Batch hinzufügen mit dem Aufruf:
Ansiasci [Quelldatei] [Zieldatei] /an /o
Damit wird deine Unserliche (Quelldatei) in eine Leserliche (Zieldatei) umgewandelt, die du dann benutzen kannst!!!!!!!
Viel Erfolg
Mfg. friend112
P.S. Hier ein Direktes Link zum download : http://dosware.de/download/ansasc.exe
P.P.S: Du mußt bei der Angabe der Ziel und Quelldatei die Dos-Ordnerstruktur berücksichtigen (maximal 8 Zeichen, sonst Abkürzung mit ~)
FMS-Master
07.02.2004, 10:43
Danke friend 112!
Ich werde das teil mal runterladen.
Habe aber noch eine Frage zur verwendung.
Muss ich das umwandeln bevor ich den Text in die txt speichere
oder kann ich das einmal im monat mit der ganzen Datei
manuell starten? (Die txt. logt jeweils für einen Monat mit)
Vielen Dank
MKG FMS-Master
friend112
08.02.2004, 14:32
Hallo FMS-Master,
Das programm dient dazu eine bereits bestehende ASCI Datei n eine Ansi Datei umzuwandeln. Das heißt, wenn du eine Datei über eine Batch speicherst, wird Sie automatisch im für Windows nicht komplett leserlichen Format geschrieben. Diese bereits geschriebene Datei kannst du dann mit dem Prog in ein reines Windows Format ändern.
Bei meiner SMS Alarmierung mache ich es z.B. so, dass ich die Datei erst einmal in Temp.txt speichere.
Dann rufe ich das Programm auf:
ansiasci (Quellordner)\Temp.txt (Zielordner)\Alarm.txt /an /o
Die Alarm.txt wird dann mit dem Handy auf Reise geschickt.
Das "/o" bewirkt, dass die Datei jedes mal überschrieben wird, ohne zu fragen.
Das "/an" bewirkt, das die Umwandlung von ASCII nach ANSI stattfindet, alternativ könnte man mt "/as" von ANSI nach ASCII umwandeln.
Ich hoffe das hilft dir weiter!
Mfg. friend112
P.S.: Du kannst damit also auch Manuell jede bestehende Datei nachträglich umwandeln!
FMS-Master
09.02.2004, 17:14
Hallo friend112!
Habe das kleine prog jetzt mal ausgiebig getestet.
es funzt einwandfrei. vielen dank für den hinweis noch.
Cya sagt der FMS-Master
friend112
09.02.2004, 17:35
kein Problem,
dafür ist man doch da (-:,
Bis dann friend112
Hallo habe Ähnliches Problem mit der übergabe von Clemail an SMS.
folgende Batch habe ich:
@Echo off
cls
Echo Alarmierung
D:\Mail\clemail.exe -to danny-mayer@gmx.de -from Silvana@gmx.de -fromname Alarm -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser 563258 -poppass PASSWORT - subject "%*" -body no
wait 10
Da ich ja die Daten nicht speichere in einer Temp.txt oder so, wie kann ich diese Meldung dann umwandeln?
Danny
friend112
18.02.2004, 17:24
Also folgendes:
Ich habe mir gerade die Anleitung von Clemail durchgelesen, du kanst anstatt [-Subject "%*"], den Befehl [-Subjectfile c:\alarm.txt] benutzen.
Um diese Alarm.txt zu bekommen kanst du nun nach "echo Alarmierung" folgendes einfügen:
set alles= %1
set alles= %alles% %2
set alles= %alles% %3
echo Ergebniss ist %alles%
echo %alles% > c:\temp.txt
ansiasci c:\temp.txt c:\Alarm.txt /an /o
So, nun kannst du Clemail mit der kleinen oben genannten änderung aufrufen und bekommst alles korrekt gesendet!
Mfg. friend112
meine neue Batch:
@Echo off
cls
Echo Alarmierung
echo %3>> c:\temp.txt
ansiasci c:\temp.txt c:\Alarm.txt /an /o
D:\Mail\clemail.exe -to danny-mayer@gmx.de -from dannymayer@gmx.de -fromname POC32 -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser 211789 -poppass**** -subjectfile c:\alarm.txt -body no
wait 30
Erbebnis:
"Technische Hilfe, T|rvffnung
Danny
EDIT (by Quietschphone):
in der Temp.txt steht der Müll ohne Umlaute und in Alarm.txt steht alles richtig!
Aber versendet wir der Müll!
ich habe auch schon einen kurzen wait befehl nach der Umwandlung eingebaut, aber ebenfalls ohne Erfolg!
Danny
EDIT (by Quietschphone):
hallo, hab mir grad mal die Meldungen als sms senden lassen und die Mails bei GMX im Netz gelesen.
Anscheinend hat nur Outlook das Problem und sonst niemand!
Obwohl ich normalerweise auch umlaute anschauen kann!
Egal, wenn ich die SMS richtig bekomme ist okay!
Danke
Danny
@Danny:
Wie oft soll ich Dir denn noch sagen, dass Du die Ändern-Funktion benutzen sollst? Willst Du uns Mods hier verar....?
Quietschphone
friend112
18.02.2004, 20:06
Hi Danny,
du soltest in deiner Batch noch das ">>" durch ein ">" ersetzen, sonst wird die Datei immer nur verlängert!!!!!!!!!
Und irgendwann ist dein Subject so lang, das du Probleme bekommst!
Also habe ich jetzt richtig verstanden, dass es letzendlich klappt?
Das freut mich dann für dich.
Bis dann,
Mfg. friend112
Sorry aber ich weiß nicht was du willst?
wenn ich einen fehler in meinem Beitrag habe benuzte ich die ändern funktion!
WAS SOLL ICH DEN SONST MACHEN?
und wenn sich zischenzeitlich etwas ergeben hat, brauche ich doch nicht alles von vorher zu löschen!
und wenn ich das in der selben Mail schreibe sieht das ja toll aus!
Ich habe schon gemerkt das es speziell quietschphone lieber wäre wenn ich das Forum verlasse!
Schade eigentlich!
Danny
@ friend122 ja danke für die Mühe und Zeit, das ist halt ein wahrer Freund!
davon gibt es hier sehr wenige!
Quietschphone
19.02.2004, 10:12
Also, nochmal zum Thema "Ändern", auch wenn es OT ist:
@Danny: Du hast gestern innerhalb einer dreiviertel Stunde drei Beiträge nacheinander verfasst. Das habe ich bei Dir schon öfter bemerkt, dies dann alles in einen Beitrag gepackt und Dich darüber per PN informiert und Dir auch erklärt, dass dies hier unerwünscht ist! Wenn Du dies dann trotzdem weiterhin so machst fühle ich mich von Dir verar....
Ich habe schon gemerkt das es speziell quietschphone lieber wäre wenn ich das Forum verlasse!
Das hat nichts damit zu tun, das sind ganz einfach Sachen, an die sich JEDER hier im Forum zu halten hat, deswegen weise ich auch immer wieder drauf hin. Wenn ein Newbie kommt habe ich da noch etwas Nachsicht, aber bei jemanden mit über 100 Beiträgen denke ich schon, dass er es verstanden hat und sich etwas eingliedern kann!
Und nochmal auf die Beziehung Danny <> Quietschphone zu kommen:
Falls Du es schon bemerkt hast habe ich in den letzten Wochen genügend Zeit mit der Beantwortung Deiner Fragen verbracht, scheinbar zählt sowas ja nicht...
Brandmeister
11.07.2005, 14:51
Guten Tag,
bei mir steht dann immer in der Betreffzeile : Echo ist angeschalten.
kann mir jemand sagen warum das so ist?????
Hier meine Batch!
ECHO on
if exist status.txt. goto.ende
ECHO.>status.txt
echo %*> c:\temp.txt
ansiasci.exe c:\temp.txt c:\einsatz.txt /an /o
C:\clemail.exe -to .......x.112@gmx.de -from einsatz@gmx.info
-fromname FMS -smtpserver mail.gmx.net -popserver
pop.gmx.net -popuser 22xxxxx -poppass PASSWORT
-subjectfile c:\einsatz.txt -body no
C:\wait.exe 20
del status.txt
:ende
Ich habe da noch Befehle drin damit die Batch nur einmal startet!
Nicht wundern! ;)
Vielen Dank!!!
C:\wait.exe 20
del status.txt
:ende
felix000
11.07.2005, 15:13
@ECHO OFF
if exist status.txt goto ende
ECHO.>status.txt
echo %*> c:\temp.txt
ansiasci.exe c:\temp.txt c:\einsatz.txt /an /o
C:\clemail.exe ...
C:\wait.exe 20
del status.txt
:ende
Jetzt sollte sie funktionierten.
Brandmeister
11.07.2005, 15:46
@ECHO OFF
if exist status.txt goto ende
ECHO.>status.txt
echo %*> c:\temp.txt
ansiasci.exe c:\temp.txt c:\alarm.txt /an /o
C:\clemail.exe -to silvia.112@gmx.de -from einsatz@gmx.info -fromname FMS -smtpserver mail.gmx.net -popserver pop.gmx.net -popuser 22jjjjjjj -poppass jjjjjjjjj -subjectfile C:\alarm.txt -body no
C:\wait.exe 20
del status.txt
:ende
Steh wieder echo ist ausgeschalten(ECHO OF )
Geht immer noch net!!!
Ich weiß nicht mehr was ich falsch mache ich seh net mehr durch!! PS vielen Dank für deine schnelle hilfe
felix000
11.07.2005, 15:55
Bist du dir sicher, dass du überhaupt einen Parameter übergibst?????
Wie sieht die Zeile, mit der du die Batch aufrufst, in FMS32pro aus????
C:\pfad\batch.bat %1 %2 %3
oder so ähnlich?
Brandmeister
11.07.2005, 16:00
bei mir sieht die so aus C:\alarm.bat %1
und wenn ich jetzt die bat bei fms32 einfügen will und warte bis ein proberuf kommt ( aller 2 min ) wenn dieser dann kommt dann öffnet sich das fenster und geht sofort wieder zu! Und keine mail kommt an!
:(
Bitte hilf mir ;)
felix000
11.07.2005, 16:04
Überprüf mal ob die status.txt existiert. Wenn die im Verzeichnis der Batch rumschwirrt, wird die Batch ja sofort beendet.
Welche Version von FMS32pro hast du????
Ist das Ausführen von Aktionen aktiviert???
Brandmeister
11.07.2005, 16:08
So es geht jetzt alles......aber nur wenn ich das manuell starte und das ist ja nicht Sinn und Zweck der Sache!!!
Nun habe ich folgende Fragen: Wird jetzt der ganze Pocsagtext übergeben wenn ich den Parameter %* angegeben habe! ( also das es die leerzeichen ignoriert) ??
Und nun ist noch das Problem das wenn ich das einbinde in FMS32 das das zwar gestartet wird aber das DOS fenster nach 1 sek wieder zu geht und keine email versendet wurde!
Ich habe auch noch POC32 Full habe das dort auch schon probiert geht aber genauso schlecht !
Vielen Dank!!!
felix000
11.07.2005, 16:48
Gib mal in FMS32pro folgendes an:
C:\alarm.bat "%1"
und in der Batch rufst du %1 statt %* auf.
Welche Version von FMS32pro hast du???
Dein "Hallo?" finde ich unverschämt, wenn ich ehrlich bin.
Brandmeister
11.07.2005, 16:53
Ich habe das nun so geändert wie du sagtest! Geht immer noch net!
ich habe das normale Fms, aber daran kanns nicht liegen.
Denn erst ging es ja auch! Und wenn ich das bei Pocsag32 einfüge geht es immer noch net!
Vielen Dank!!!!!
felix000
11.07.2005, 17:09
Original geschrieben von Brandmeister
ich habe das normale Fms, aber daran kanns nicht liegen.
Sag doch bitte einfach welche Version du von FMS32(pro) hast. Es gibt keine "normale" Version.
Kann man ganz einfach über Hilfe - Info nachschaun.
Überprüf dann bitte nochmal alle Pfade und achte auf die korrekte Schreibweise.
Brandmeister
11.07.2005, 17:12
Ich hab die 2.2.9
ist die ok
felix000
11.07.2005, 17:24
Schreib mal in die Batch ein
echo %*>>test.txt
und schau nach einer Alarmierung ich das Verzeichnis der Batch nach einer test.txt.
Kann FMS32 (ohne pro) Parameterübergabe?????
Außerdem bist du im falschen FORUM!!!!
Brandmeister
11.07.2005, 17:42
Ich weiß das ich im falschen bin! Aber das tats ja nicht zur sache......das thema wurde hier nun mal besprochen! Wäre doch sinnlos ein neues Thema wonaders aufzumachen! Und ja mein FMS kann parameterübergabe!!
Danke für die tipps versuchs nochmal!!
VIELEN DANK!!!!!!!!!!!!!!!!!!!!!!!!!
Brandmeister
11.07.2005, 18:38
Ich habe nun hinbekommen das es aus FMS startet es schickt aber noch keinen Betreff mit!!
Ich habe in der Bat
den Parameter angegeben : %*
Und bei fms im editor : C:\Programme\FMS32\sms.bat %*
felix000
11.07.2005, 18:49
FMS32 kann mit %* eigentlich nichts anfangen.
FMS32 kennt nur %1 %2 %3 und %4.
Aber wenns so funktioniert...
Original geschrieben von Brandmeister
Ich habe nun hinbekommen das es aus FMS startet es schickt aber noch keinen Betreff mit!!
Ich habe in der Bat
den Parameter angegeben : %*
Und bei fms im editor : C:\Programme\FMS32\sms.bat %*
Sinnvollerweise sollte man, wenn im Übergabaparameter Leerzeichen oder andere "betriebssystemrelevante Sonderzeichen" wie > < | : \ / - auftauchen könnten den Parameter in " setzen, die Zeile sollte dann also wie folgt aussehen:
C:\Programme\FMS32\sms.bat "%*"
bzw.
C:\alarm.bat "%*"
In der BATCH-Datei mal nach dem Aufruf der Zeile:
C:\alarm.bat "%*"
in eine neue Zeile
PAUSE
einfügen. Dann sollte das DOS-Fenster, wenn alle Befehle bis zum Aufrüf der alarm.bat abgearbeitet worden sind über den Befehl Pause die weitere Abarbeitung der BATCH-Datei angehalten werden, bis sie wieder durch Betätigen einer Taste weiter fortgeführt wird.
Dadurch sollte alle Meldungen in der Eingabeaufforderung "lesbar" erhalten werden, bis das Fenster geschlossen wird.
die BATCH-Dateien sms.bat und alarm.bat liegen auch wirklich in den über die absolute Pfadangabe angegebenen Verzeichnissen?
Brandmeister
12.07.2005, 00:10
@ECHO OFF
cls
if exist status.txt goto ende
ECHO.>status.txt
echo "%*"> C:\Programme\Heirue-Soft\FMS32-PRO\temp.txt
PAUSE
ansasc.exe C:\Programme\Heirue-Soft\FMS32-PRO\temp.txt C:\Programme\Heirue-Soft\FMS32-PRO\einsatz.txt /an /o
C:\Programme\Heirue-Soft\FMS32-PRO\clemail.exe -to xxxxx.112@gmx.de -from einsatz@gmx.info -fromname FMS -smtpserver mail.gmx.net -popserver pop.gmx.net -popuser xxxxxxx -poppass xxxxxxx -subjectfile C:\Programme\Heirue-Soft\FMS32-PRO\einsatz.txt -body no
C:\Programme\Heirue-Soft\FMS32-PRO\wait.exe 20
del status.txt
:ende
Original geschrieben von Brandmeister
@ECHO OFF
cls
if exist status.txt goto ende
ECHO.>status.txt
echo "%*"> C:\Programme\Heirue-Soft\FMS32-PRO\temp.txt
PAUSE
ansasc.exe C:\Programme\Heirue-Soft\FMS32-PRO\temp.txt C:\Programme\Heirue-Soft\FMS32-PRO\einsatz.txt /an /o
C:\Programme\Heirue-Soft\FMS32-PRO\clemail.exe -to xxxxx.112@gmx.de -from einsatz@gmx.info -fromname FMS -smtpserver mail.gmx.net -popserver pop.gmx.net -popuser xxxxxxx -poppass xxxxxxx -subjectfile C:\Programme\Heirue-Soft\FMS32-PRO\einsatz.txt -body no
C:\Programme\Heirue-Soft\FMS32-PRO\wait.exe 20
del status.txt
:ende
Steht jetzt immer noch das ECHO is on in der Datei?
Wenn ja, dann ist das, was über den Parameter %* übergeben werden soll ein Leerstring.
In älteren Betriebssystemversionen gab meines wissens nach nur die Parameter %0 %1 ... %9. Wenn man also sicher sein will, daß die Parameter korrekt ausgewertet werden , dann würde ich einfach folgende Zeilen nach der Zeile "ECHO.>status.txt" einfügen:
echo Parameter * >> Status.txt
echo "%*" >> Status.txs
echo Parameter 0-9 >> Status.txt
echo "%0" >> Status.txt
echo "%1" >> Status.txt
echo "%2" >> Status.txt
echo "%3" >> Status.txt
echo "%4" >> Status.txt
echo "%5" >> Status.txt
echo "%6" >> Status.txt
echo "%7" >> Status.txt
echo "%8" >> Status.txt
echo "%9" >> Status.txt
und aus den Zeilen
C:\Programme\Heirue-Soft\FMS32-PRO\wait.exe 20
del status.txt
:ende
machst Du
type status.txt
pause
C:\Programme\Heirue-Soft\FMS32-PRO\wait.exe 20
del status.txt
:ende
Der Inhalt von status.txt sollte mindestens
folgende Zeilen beinhalten (ohne das führende Zeile x), in <> eingefaßte Texte beschreiben den Zeileninhalt in <<>> einfefaßter Text ist Kommentar:
Zeile 1 <LEERZEILE>
Zeile 2 Parameter *
Zeile 3 <den Wert des Übergabeparameters> <<ODER>> ECHO ist ausgeschaltet (OFF).
Zeile 3 Parameter 0-9
Zeile 4 <Name der gestarteten Batchdatei>
Zeile 5 <Wert des ersten Übergabeparameters> <<ODER bei leerem Parameter>> ""
Zeile 6 <Wert des zweiten Übergabeparameters> <<ODER bei leerem Parameter>> ""
Sobald ein Parameter leer wahr, sind alle nachfolgenden Parameter auch leer.
Vielleicht kommst Du hierüber dem Problem auf die Schliche.
Brandmeister
13.07.2005, 08:21
Ok geht habe es hinbekommen!!
Vielen Dank für eure Mühe!
Vielen Dank!!!!!
donervogel
28.06.2008, 11:59
Was mache ich falsch? Ich habe mit dem Programm ansiasci, welches sich im stammverzeichnis von c befindet (ebenso wie die entsprechende batch datei keinen erfolg.
eigendlich sollte doch die testdatei.txt ohne umlaute so in die asci.txt mit korrekten umlauten umgewandelt werden oder nicht?
@echo off & setlocal
set "Datei=c:\Dokumente und Einstellungen\Administrator\Programme\Protokolle\T estdatei.txt"
set "Datei2=c:\Dokumente und Einstellungen\Administrator\Programme\Protokolle\A SCI.txt"
set mydate=%date:~-10,2%-%date:~-7,2%-%date:~-4%
set mytime=%time:~-11,2%-%time:~-8,2%-%time:~-5,2%
if exist "%Datei%" move "%Datei%" "%Datei%.bak"
echo %mydate% %mytime% %1 %2 %3 >"%Datei%"
if exist "%Datei%.bak" type "%Datei%.bak">>"%Datei%"
ansiasci "%Datei%" "%Datei2%" /an /o
Powered by vBulletin® Version 4.2.3 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.