Wie kann ich mit Visual basic Script eine Textdatei erstellen die als Dateiname das aktuelle Datum hat?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet



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



Seliba  22.08.2017, 20:08

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
0
Seliba  22.08.2017, 20:12

Noch ein Edit:

Statt text.txt musst du natürlich

Datum + ".txt"

hochladen lassen. Betrifft den FTP-Teil.

Das war's jetzt hoffentlich! ;)

0
derwieland1994 
Fragesteller
 22.08.2017, 21:09

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?

1
Seliba  22.08.2017, 21:20
@derwieland1994

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

0
derwieland1994 
Fragesteller
 22.08.2017, 21:32

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...

0
Seliba  22.08.2017, 21:33

Ok :)

0
derwieland1994 
Fragesteller
 22.08.2017, 21:56

Danke nochmal...ähm...nächste Frage: Wie kann man bei der App eine Antwort als hilfreichste auswählen xD

0
Seliba  22.08.2017, 21:57

Dazu musst du ein paar Tage warten, dann geht dass ^^ (1 - 5 Tage)

0

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.

Seliba  22.08.2017, 20:02

WinSCP ist unter Windows 1000x besser als FileZilla...

0
PringlesPLZ67  23.08.2017, 09:02
@Seliba

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.

0

Da wäre das Problem "vertrauen" ich hätte gerne selbst die kontrolle.

Und meine Frau soll ja auch noch was zu tun haben 😅

PringlesPLZ67  22.08.2017, 16:09

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.

0
derwieland1994 
Fragesteller
 22.08.2017, 16:14

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.

0