Wie kann ich mit Visual basic Script eine Textdatei erstellen die als Dateiname das aktuelle Datum hat?
Hallo,
Ich möchte ein Vb Script erstellen, mit dem ich daten aus einem PHP Auftragsformular in eine Textdatei schreiben kann die automatisch im Dateinamen das aktuelle Datum hat und automatisch via FileZilla auf meinen FTP Server hochgeladen wird.
Den Teil bei dem ich die Daten eintrage habe ich schon kommt zwar eine Fehlermeldung aber es läuft...jetzt möchte ich, dass die Datei automatisch mit dem aktuellen Datum versehen und hochgeladen wird.
Hat da jemand etwas greifbar oder möchte mir was schreiben?
Bin am verzweifeln
Danke im vorraus Wieland
3 Antworten
Da die anderen beiden nichts sinnvolles schreiben, ist hier meine Lösung:
Dim Datum
Dim DatumS
Dim ScriptPath
Datum = date
DatumS = CStr(Datum)
ScriptPath = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))
Pfad = ScriptPath + DatumS + ".txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set MyFile = FSO.CreateTextFile(Pfad, TRUE)
MyFile.Close
Set MyFile = FS
Evtl musst du mehrere Zeilen erstellen, einfach unter Writeline ein neues Writeline runtersetzen:
...
MyFile.WriteLine ("Erster Text")
MyFile.WriteLine ("Zweiter Text")
...
Ich erklär dir mal Alles:
Dim Datum
Dim DatumS
Dim ScriptPath
Datum = date
DatumS = CStr(Datum)
Die Variablen werden erstellt, die Variable Datum wird zum aktuellen Datum gesetzt. Da das Datum allerdings kein String ist, wird DatumS als Datum mit String gespeichert.
ScriptPath = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))
Pfad = ScriptPath + DatumS + ".txt"
Der Pfad der zukünftigen Datei wird gesetzt. Er besteht aus dem Pfad des Scriptes, dem Datum als String und der .txt-Endung.
Set FSO = CreateObject("Scripting.FileSystemObject")
Set MyFile = FSO.CreateTextFile(Pfad, TRUE)
MyFile.Close
Eine Datei wird erstellt, da die Endung in der Variable Pfad .txt ist, wird das eine Text-Datei.
Set MyFile = FSO.OpenTextFile(Pfad, 8)
MyFile.WriteLine ("Dein Text")
MyFile.Close
Das Textdokument wird erneut geöffnet, diesmal wird was reingeschrieben. Solltest du die Werte aus der PHP-Datei als Variable gespeichert haben (etwas anderes ergibt eigentlich keinen Sinn), kannst du die "" weglassen und den Namen der Variable reinschreiben. Zeilen fügst du wie oben beschrieben hinzu.
Das Script wurde von mir getestet, es funktioniert so wie es soll.
Solltest du allerdings die Uhrzeit ebenfalls haben wollen, musst du das
Datum = date
durch
Datum = now
ersetzen.
Das hat ganz schön lange gedauert, das hier zusammenzustellen, ich hoffe, dass ich dir helfen konnte... ;)
finn1123 // Seliba
EDIT: Zum Hochladen habe ich auch was gefunden, einfach an's Ende mit den entsprechenden Daten schreiben:
'FTP Upload
'Upload a file/folder to an FTP server
Set oShell = CreateObject("Shell.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Path to file or folder to upload
path = "test.txt"
FTPUpload(path)
Sub FTPUpload(path)
On Error Resume Next
'Copy Options: 16 = Yes to All
Const copyType = 16
'FTP Wait Time in ms
waitTime = 80000
FTPUser = "user"
FTPPass = "pass"
FTPHost = "www.domain.com"
FTPDir = "/htdocs/"
strFTP = "ftp://" & FTPUser & ":" & FTPPass & "@" & FTPHost & FTPDir
Set objFTP = oShell.NameSpace(strFTP)
'Make new folder on FTP site
'objFTP.NewFolder "FTP Backup"
'Upload single file
If objFSO.FileExists(path) Then
Set objFile = objFSO.getFile(path)
strParent = objFile.ParentFolder
Set objFolder = oShell.NameSpace(strParent)
Set objItem = objFolder.ParseName(objFile.Name)
Wscript.Echo "Uploading file " & objItem.Name & " to " & strFTP
objFTP.CopyHere objItem, copyType
End If
'Upload all files in folder
If objFSO.FolderExists(path) Then
'Code below can be used to upload entire folder
Set objFolder = oShell.NameSpace(path)
Wscript.Echo "Uploading folder " & path & " to " & strFTP
objFTP.CopyHere objFolder.Items, copyType
End If
If Err.Number <> 0 Then
Wscript.Echo "Error: " & Err.Description
End If
'Wait for upload
WScript.Sleep waitTime
End Sub
now scheint dann kein Interger mehr auszugeben, keine Ahnung wie man das mit now macht, ich hoffe das mit dem Datum passt ;)
Klappt das mit dem FTP auch? :D
Danke nochmal...ähm...nächste Frage: Wie kann man bei der App eine Antwort als hilfreichste auswählen xD
Ja so geht das auch Uhrzeit steht ja in der Info das reicht das mit dem Upload hab ich noch nicht getestet weil wenn ich das richtig verstanden habe macht er das ohne FileZilla...aber ohne geht es leider noch nicht da mein server keine statische IP hat...
Noch ein Edit:
Statt text.txt musst du natürlich
Datum + ".txt"
hochladen lassen. Betrifft den FTP-Teil.
Das war's jetzt hoffentlich! ;)
Oh Gott... Was hat Gutefrage.net daraus gemacht??? Das Script heißt natürlich
Dim Datum
Dim DatumS
Dim ScriptPath
Datum = date
DatumS = CStr(Datum)
ScriptPath = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))
Pfad = ScriptPath + DatumS + ".txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set MyFile = FSO.CreateTextFile(Pfad, TRUE)
MyFile.Close
Set MyFile = FSO.OpenTextFile(Pfad, 8)
MyFile.WriteLine ("Dein Text")
MyFile.Close
warum willst du das über den Umweg VBScript machen?
Du kannst mit PHP direkt die Datei schreiben und dann auch gleich den FTP Upload machen, da brauchst du auch kein FileZilla
Dafür gibt es unzählige Codebeispiele im Netz.
danke für den Hinweis. Aber sag das nicht mir sondern dem FS.
Und überhaupt, wie kommst du dazu zu sagen, dass die anderen nichts sinnvolles schreiben?
Dass alles per PHP funktioniert ist wohl richtig.
Da wäre das Problem "vertrauen" ich hätte gerne selbst die kontrolle.
Und meine Frau soll ja auch noch was zu tun haben 😅
mir geht es um den Teil in dem ich bzw. meine Frau die Daten aus dem Formular eintrage die bekomme ich ja per Mail geschickt.
welches "vertrauen".
Du fragst nach einem Script, das automatisch die Dateien mit dem aktuellen Datum versieht und dann automatisch per FTP über FileZilla hochlädt.
Da hast du genauso viel oder wenig die Kontrolle, als wenn du alles direkt mit PHP programmierst.
Ja habe gemerkt, dass da was fehlt xD Funktioniert perfekt danke dafür. ich habe noch InputBoxen hinzugefügt jetzt läuft es perfekt und sogar ohne Fehlermeldung xD vielen Dank nur das mit now läuft nicht so da spuckt er eine fehlermeldung aus in zeile 9 meint er ungültiger dateiname was kann das sein?