bertram99

PUTTY BATCH zum Auslesen von SMS

Hallo,
ich möchte unter Windows7 von einem USB-Stick (Fonic Surf Stick) eingegangene SMS auslesen und auf dem PC speichern. Der Zugriff erfolgt mittels AT-Befehlen über PuTTY. Bei entsprechender Konfiguration der Putty-Konsole (unter read_sms gespeichert) und Eingabe der AT-Befehle funktioniert das Auslesen und Speichern einwandfrei.
Ich komme nicht weiter bei dem Versuch, die Befehlsfolge von einer Batch-Datei aufzurufen, wobei statt PuTTy jetzt plink genutzt wird. Die Windows-Konsole wird geöffnet, per Hand eingegebene AT-Befehler werden abgearbeitet. Es wird nichts gespeichert.

"read_sms": In Putty als Session gespeicherte Einstellungen.

Batch-Datei "sms.bat":
cd "c:\Program Files (x86)\PuTTY"
plink -load "read_sms"
plink -m "c:\Program Files (x86)\PuTTY\commands_plink.txt"

commands_plink.txt:
ATZ
at+cmgf=1
at+cmgl="all"

Es wäre nett, wenn jemand helfen könnte.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 238649

Url: https://administrator.de/forum/putty-batch-zum-auslesen-von-sms-238649.html

Ausgedruckt am: 03.06.2025 um 05:06 Uhr

Gahmuret
Gahmuret 23.05.2014 um 18:06:47 Uhr
Goto Top
plink -load "read_sms"
plink -m "c:\Program Files (x86)\PuTTY\commands_plink.txt"

Hallo bertram99,

ich habe plink bisher noch nicht eingesetzt, aber das muss wohl

plink -load "read_sms" -m "c:\Program Files (x86)\PuTTY\commands_plink.txt"

lauten.

Grüße
colinardo
colinardo 23.05.2014 aktualisiert um 18:22:35 Uhr
Goto Top
Hallo bertram99,
der Parameter -m gilt leider nur für SSH-Sessions und nicht für serielle Kommunikation wie die Hilfe auch bestätigt, und wenn dann hättest du diese Befehl in einer Zeile zusammenfassen müssen. Alternativ, wenn es dir hilft, kannst du es mit einem passenden Powershell-Script erledigen (Dateipfad für die Ausgabe, und COM-Port anpassen):
$fileResult = "sms.txt"  
$PORT = "COM6"  
$com = new-Object System.IO.Ports.SerialPort $port,115200,None,8,1
$Error.Clear()
try{
    $com.Open()
    if($com.IsOpen){
        $com.Write("ATZ`r`n")  
        sleep -Milliseconds 50
        $com.Write("AT+CMGF=1`r`n")  
        sleep -Milliseconds 50
        $com.Write("AT+CMGL=""ALL""`r`n")  
        sleep -Milliseconds 500
        $response = $com.ReadExisting()
        write-host $response
        Set-Content $fileResult $response
    }else{
        write-host "Konnte COM-Port: '$PORT' nicht öffnen!" -ForegroundColor Red  
    }
     
}catch{
    write-host $Error -ForegroundColor Red
}
finally{
    $com.Close()
}
Grüße Uwe
bertram99
bertram99 23.05.2014 um 19:32:07 Uhr
Goto Top
Hallo Gahmuret,
wie nachfolgend Colinardo schreibt, kann mein Ansatz nicht funktionieren. Dennoch herzlichen Dank für Hilfe-Versuch.
Herbert
bertram99
bertram99 23.05.2014 um 19:33:14 Uhr
Goto Top
Hallo Uwe,
herzlichen Dank für mehr als nur ein Hinweis. Du hast mir sehr geholfen.
Grüße aus Dresden,
Herbert