PDA

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

Danny
18.02.2004, 17:05
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

Danny
18.02.2004, 17:51
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

Danny
18.02.2004, 20:47
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...

fwp
12.07.2005, 00:06
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

fwp
13.07.2005, 08:08
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