1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Geht das mit einer Batch-Datei?

Discussion in 'Programmieren' started by jungleblizz, Jul 13, 2010.

Thread Status:
Not open for further replies.
  1. Hallo! Ich würde gerne wissen ob man folgendes per Batch-Datei machen kann (soll unter WinXP, Vista und Win7 funktionieren):

    -Beim ausführen des Skripts soll der User einen kurzen Text eingeben.
    -Dieser Text wird in einer Textdatei gespeichert (Dateiname ist das aktuelle Datum und die Uhrzeit, Bsp. 2010-06-23-19-56.txt)
    -Die Textdatei wird anschliessend auf einen FTP hochgeladen und von der lokalen Festplatte gelöscht.

    Geht das oder verlange ich zuviel? Habt ihr irgendwelche Tips, wo ich mir Teile des Codes abkucken kann? Danke :)
     
    Last edited: Jul 13, 2010
  2. Hallo! Ich habe mir eine funktionierende Zwischenlösung mit VBScript zusammengebastelt (Quellen: Dieser Forum-Thread und diese externe Quelle).

    Soweit so gut!

    Damit fehtl nur noch der upload auf einen FTP. Ich habe bislang für VBScript nur Lösungen finden können, bei denen man noch etwas externes herunterladen bzw installieren muss. Aber das kommt leider nicht in Frage. Das Skript soll am Ende bei einigen Bekannten auf dem Desktop liegen und benutzt werden, ohne dass diese etwas installieren müssen..

    Jemand einen Idee mit dem FTP-Problem???


    Hier meinen zusammengebastelte Zwischenlösung:

    DasSkript.vbs:
    Code:
       datetoday = Now 
        strMonth  = Right("0" & Month(datetoday) ,2) 
        strDay    = Right("0" & Day(datetoday)   ,2) 
        strHour   = Right("0" & Hour(datetoday)  ,2) 
        strMinute = Right("0" & Minute(datetoday),2) 
        strSecond = Right("0" & Second(datetoday),2) 
        datetoday = YEAR(datetoday) & strMonth & strDay 
        timetoday = strHour & strMinute & strSecond 
        strFile   = datetoday & "_" & timetoday & ".txt"
    
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oFile = fso.OpenTextFile("C:\" & strFile,8,true)
    
    nachricht = InputBox("Bitte hier Nachricht eingeben:")
    oFile.WriteLine "Nachricht: " & nachricht
    
    oFile.close
     
  3. VB-Coder

    VB-Coder Megabyte

    sprich doch einfach die ftp.exe an, die ist ja bei jedem Windows dabei. Damit kannst du die Sachen auch Uploaden. Allerdings sollte dir bewusst sein, das egal ob per Batch, oder vbs, die FTP Daten (Login) unverschlüsselt im Script stehen. Das ganze eignet sich also nicht unbedingt zur Weitergabe. Oder du richtest einen extra FTP Account für das ganze ein (sofern möglich).
     
  4. Hallo! Ersteinmal Danke für den Sicherheitshinweis. Ich habe schon speziell hierfür einen extra FTP-Account eingerichtet, deshalb kann da diesbezüglich eigentlich nix schiefgehen.

    Das mit der ftp.exe war mir natürlich nicht bekannt, deshalb gut zu wissen. Bis vorhin wusste ich auch noch nicht, dass es überhaupt sowas wie VBScript gibt... Ich muss mich jetzt erstmal durchs Internet kämpfen um rauszufinden wie ich diese ftp.exe per VBScript ansprechen kann. Gut zu wissen wonach man überhaupt suchen soll, hehe. Ich gebe dann Rückmeldung :)
     
  5. Es geht! Ich werd' bekloppt! :) Ich habe mir von anderer Stelle (hier und hier) noch ein paar Code-Schnipsel kopiert und in mein Skript "reingezimmert" und es funktioniert! Das Einzige was ich jetzt noch vermisse, ist eine Rückmeldung, dass die Datei erfolgreich hochgeladen wurde.

    Hier meine komplette Nachricht.vbs:
    Code:
    ' Timestamp-Zeichenkette erzeugen'
    ' ---------------------------------------------------------------' 
       datetoday = Now 
        strMonth  = Right("0" & Month(datetoday) ,2) 
        strDay    = Right("0" & Day(datetoday)   ,2) 
        strHour   = Right("0" & Hour(datetoday)  ,2) 
        strMinute = Right("0" & Minute(datetoday),2) 
        strSecond = Right("0" & Second(datetoday),2) 
        datetoday = YEAR(datetoday) & strMonth & strDay 
        timetoday = strHour & strMinute & strSecond 
        strFile   = datetoday & "_" & timetoday & ".txt"
    
    ' Textdatei (die übertragen wird) erstellen'
    ' ---------------------------------------------------------------' 
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oFile = fso.OpenTextFile("C:\" & strFile,8,true)
    
    ' Nachricht von user abfragen und in Textdatei schreiben'
    ' ---------------------------------------------------------------' 
    nachricht = InputBox("Bitte hier Nachricht eingeben:")
    oFile.WriteLine "Nachricht: " & nachricht
    oFile.close
    
    ' Textdatei mit Servereinstellungen erstellen'
    ' ---------------------------------------------------------------'
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set settingsFile = fso.OpenTextFile("C:\send.txt",8,true)
    settingsFile.WriteLine "open mein-server.com"
    settingsFile.WriteLine "Benutzername"
    settingsFile.WriteLine "Passwort"
    settingsFile.WriteLine "ascii"
    settingsFile.WriteLine "put " & "C:\" & strFile
    settingsFile.WriteLine "bye"
    settingsFile.close
    
    ' FTP upload'
    ' ---------------------------------------------------------------'
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set WshShell = CreateObject("WScript.Shell") 
    
    Set f = fso.GetFile(WScript.ScriptFullName)
    Batch = "C:\send.txt" 
    
    WshShell.Run "ftp -s:""" & Batch & "", 0, True
    
    ' Textdatei mit Servereinstellungen löschen'
    ' ---------------------------------------------------------------'
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set aFile = fso.GetFile("C:\send.txt")
    aFile.Delete
    
    ' Textdatei (die übertragen wurde) löschen'
    ' ---------------------------------------------------------------'
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set aFile = fso.GetFile("C:\" & strFile)
    aFile.Delete
    
    
     
Thread Status:
Not open for further replies.

Share This Page