VBScript zum Umbennen von einer Datei
Hallo zusammen!
Leider bin ich nicht ganz vom Fach.....
Ich gehöre eher zu den Endusern.
Jetzt schon mal sorry, wenn ich den einen oder anderen Fachbegriff nicht verstehe oder verwende.
Freue mich aber trotzdem hier mitmachen zu dürfen.
Habe jetzt schon ne Weile exprimentiert, aber ich kommen noch nicht zum gewünschten Ziel.
Absicht ist es ein Script zu erstellen, welches die letzte/neueste Datei in einem Verzeichins findet.
Anschließend soll der Anwender aufgefordert werden diese Datei umzubennen.
Mein Versuch sieht so aus:
Gesucht wird hier nach einer Datei mit der Endung "txt", die nicht älter ist wie ca. 16 Sekunden.
Diese Datei soll dann durch den Anwender Umbenannt werden.
Das klappt soweit recht gut.
Es soll aber noch eine Absicherung stattfinden...... (in Zeile 35 und 36 beschrieben)
Und hier knallts.....
Wenn der Name schon existiert kommt es zur einer Fehlermeldung.
Es gibt die Möglichkeit wohl das über FileExists abzufangen, aber ich bekomme es nicht hin.
Hat jemand von Euch einen Tip?
Oder gibt es da noch einen einfacheren Ansatz?
(Wie schon gesagt bin nicht ganz vom Fach...)
Jetzt schon mal DANKE
antonof
Leider bin ich nicht ganz vom Fach.....
Ich gehöre eher zu den Endusern.
Jetzt schon mal sorry, wenn ich den einen oder anderen Fachbegriff nicht verstehe oder verwende.
Freue mich aber trotzdem hier mitmachen zu dürfen.
Habe jetzt schon ne Weile exprimentiert, aber ich kommen noch nicht zum gewünschten Ziel.
Absicht ist es ein Script zu erstellen, welches die letzte/neueste Datei in einem Verzeichins findet.
Anschließend soll der Anwender aufgefordert werden diese Datei umzubennen.
Mein Versuch sieht so aus:
Dim Show
Dim fso
Dim ordner
Dim Verzeichnis
Dim ordnerin
Dim Datei
Dim Dateianzahl
Dim Eingabe
Dim Endung
'In welchem Verzeichnis soll gesucht werden?
Verzeichnis= "C:\Test"
'Nach welcher Dateiendung soll gesucht werden?
Endung = txt
Set fso = CreateObject("Scripting.FileSystemObject")
Set ordner = fso.GetFolder(Verzeichnis)
Set ordnerin = ordner.files
Dateianzahl = ordnerin.count
for each Datei in ordnerin
If right(Datei.name,3) = "Endung" then
Show = Show & vbNewline & Datei.DateCreated
end if
If now - Datei.DateCreated < 0.00016 then 'ca. 16 Sekunden Pause
'Mit der Do-while-Schleife wird ein Abbrechen verhindert
Do while Eingabe = cancel
Eingabe = InputBox("Es wurde eine neue Datei angelegt!"&vbnewline&vbnewline&"Name der Datei: "&Datei.name&vbnewline&"Datei erstellt am: "&Datei.DateCreated&vbnewline&vbnewline&"Bitte einen Namen für die Datei vergeben:"&vbnewline,"Umbenennen","2012-04-11_")
loop
'Bevor der neue Name der Datei zugewiesen wird, soll gepeüft werden, ob eine Datei mit dem gleichen Namen schon im Verzeichnis existiert.
'Wenn JA, dann msgbox und wieder zur Input box zurück
'if (fso.FileExists(Verzeichnis&"\"&Eingabe&"."&Endung)) Then
'msgbox "Datei existiert schon!"&vbnewline&vbnewline&"Bitte einen neuen Namen vergeben!"
'end if
Datei.name = Eingabe&".txt"
end if
next
Gesucht wird hier nach einer Datei mit der Endung "txt", die nicht älter ist wie ca. 16 Sekunden.
Diese Datei soll dann durch den Anwender Umbenannt werden.
Das klappt soweit recht gut.
Es soll aber noch eine Absicherung stattfinden...... (in Zeile 35 und 36 beschrieben)
Und hier knallts.....
Wenn der Name schon existiert kommt es zur einer Fehlermeldung.
Es gibt die Möglichkeit wohl das über FileExists abzufangen, aber ich bekomme es nicht hin.
Hat jemand von Euch einen Tip?
Oder gibt es da noch einen einfacheren Ansatz?
(Wie schon gesagt bin nicht ganz vom Fach...)
Jetzt schon mal DANKE
antonof
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 02.05.2012 um 00:39:33 Uhr
Zitat von @antonof:
VBScript zum Umbennen von einer Datei
...
Jetzt schon mal sorry, wenn ich den einen oder anderen Fachbegriff nicht verstehe oder verwende
Hmmm ja.. dann ein Tipp: unter Experten heisst es nicht "umbennen von einer Datei", sondern nur "umbennen einer Datei"VBScript zum Umbennen von einer Datei
...
Jetzt schon mal sorry, wenn ich den einen oder anderen Fachbegriff nicht verstehe oder verwende
Anschließend soll der Anwender aufgefordert werden diese Datei umzubennen.
Set /a rgc+=2#819
Content-ID: 184329
Url: https://administrator.de/contentid/184329
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo antonof und willkommen im Forum!
So wird eher ein Schuh draus:
Ob Du irgendwann noch die in der Variablen "Show" gesammelten Daten anzeigst, musst Du selbst entscheiden (und auch, ob / wie Du auf die zwischenzeitlich erfolgte Namensänderung hinweisen willst) ...
Grüße
bastla
So wird eher ein Schuh draus:
'In welchem Verzeichnis soll gesucht werden?
Verzeichnis= "C:\Test"
'Nach welcher Dateiendung soll gesucht werden?
Endung = "txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set ordner = fso.GetFolder(Verzeichnis)
Set ordnerin = ordner.files
Dateianzahl = ordnerin.count
For Each Datei In ordnerin
If LCase(Right(Datei.Name, 3)) = LCase(Endung) Then
Alter = DateDiff("s", Datei.DateCreated, Now) 'Alter in Sekunden berechnen
Show = Show & vbNewLine & Datei.DateCreated & vbTab & Alter & vbTab & Datei.Name
If Alter < 16 Then 'ca. 16 Sekunden Pause
'Mit der Do-Loop-Schleife wird ein Abbrechen verhindert
Eingabe = ""
Do
Eingabe = InputBox("Es wurde eine neue Datei angelegt!" & vbNewLine & vbNewLine & _
"Name der Datei: " & Datei.Name & vbNewLine & _
"Datei erstellt am: " & Datei.DateCreated & vbNewLine & vbNewLine & _
"Bitte einen Namen für die Datei vergeben:" & vbNewLine, _
"Umbenennen", "2012-04-11_")
'Bevor der neue Name der Datei zugewiesen wird, soll geprüft werden, ob eine Datei mit dem gleichen Namen schon im Verzeichnis existiert.
If fso.FileExists(Verzeichnis & "\" & Eingabe & "." & Endung) Then
MsgBox "Datei existiert schon!" & vbNewLine & vbNewLine & "Bitte einen neuen Namen vergeben!"
Eingabe = "" 'Eingabe löschen
End If
Loop Until Eingabe <> ""
Datei.Name = Eingabe & "." & Endung
End If
End If
Next
Grüße
bastla