gelöst VBSkript umschreiben, um eine Datei zu kopieren (absoluter Anfänger!)
Hallo zusammen,
ich bin heute von meinem Chef im Praktikum ins kalte Wasser geschmissen worden und soll so schnell wie möglich eine .vbs-Datei umschreiben (bzw. neu erstellen, aber das kann ich erst recht nicht). Die alte Datei existiert und sieht wie folgt aus:
'v4.7
' File: ed-sichern.vbs
'
'Option Explicit
Dim fso, Datei
Dim Dateiquelle, Pfadneu, Pfadtest, Dateiziel, ZielVerz, Verzeichnis
Dim nCount
Dim oFSO
Dim oFolder
Set ofso = WScript.CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("F:\eDonkey down")
' Anzahl Dateien im Stammverzeichnis von C:
nCount = oFolder.Files.Count
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
'
' Ausgangsverzeichnis anpassen auf das ED-Verzeichnis
Set Verzeichnis = FSO.GetFolder("F:\eDonkey down")
'
'
'Zielverzeichnis' anpassen auf das Zielverzeichnis
Pfadneu = "F:\save\" & Datumzeit & "\"
'
fso.createfolder(Pfadneu)
Set Zielverz = FSO.Getfolder(Pfadneu)'Set Zielverz = FSO.Getfolder(Pfadtest)
For Each Datei In Verzeichnis.Files
on error resume next
Set DateiQuelle = fso.GetFile(Datei)
fso.moveFile DateiQuelle, Zielverz & "\"
Next
WScript.Quit
'
Function DatumZeit
'
' gibt ein Zeichenfolge zurück, die Datum / Zeit enthält
' und als Dateiname / Verzeichnisnae verwendet werden kann
Dim Zeit
Zeit = now()
' zweistellige Jahreszahl
DatumZeit = Right(Year(Zeit),2)
' zweistellige Monatszahl
If Len(Month(Zeit)) = 1 then DatumZeit = DatumZeit & "-0" & Month(Zeit)
If not Len(Month(Zeit)) = 1 then DatumZeit = DatumZeit & "-" & Month(Zeit)
' zweistellige Tageszahl
If Len(Day(Zeit)) = 1 then DatumZeit = DatumZeit & "-0" & Day(Zeit)
If not Len(Day(Zeit)) = 1 then DatumZeit = DatumZeit & "-" & Day(Zeit)
' zweistellige Stundezahl
If Len(Hour(Zeit)) = 1 then DatumZeit = DatumZeit & "_0" & Hour(Zeit)
If not Len(Hour(Zeit)) = 1 then DatumZeit = DatumZeit & "_" & Hour(Zeit)
' zweistellige Minutenzahl
If Len(Minute(Zeit)) = 1 then DatumZeit = DatumZeit & "'0" & Minute(Zeit)
If not Len(Minute(Zeit)) = 1 then DatumZeit = DatumZeit & "'" & Minute(Zeit)
' zweistellige Sekundenzahl
If Len(Second(Zeit)) = 1 then DatumZeit = DatumZeit & "'0" & Second(Zeit)
If not Len(Second(Zeit)) = 1 then DatumZeit = DatumZeit & "'" & Second(Zeit)
End Function ' DatumZeit
' **
Allerdings funktioniert sie nicht, obwohl die Verzeichnisse existieren. Ich bin jetzt gerade mal so weit gekommen, dass ich verstanden habe, dass die Zeilen, an deren Anfang ein ' steht, Kommentare sind. Ich habe noch nie mit VB gearbeitet und auch sonst von Programmierung keine Ahnung.
Es wird jetzt gewünscht, dass eine Datei "D:\draw\test.jpg" (als Beispiel) in ein Unterverzeichnis "D:\draw\backup" kopiert wird und zwar als "test_datumzeit.jpg", wobei datumzeit aktuelle Werte sein sollen. Angeblich ist das ganz einfach, aber bis jetzt hat meine Recherche im Internet bzw. auch in einem Buch mich nicht wirklich weitergebracht. Ich habe gehofft, dass hier evtl. jemand ist, für den das Ganze kein Problem darstellt. Am besten wäre natürlich, wenn er dabei noch ein bisschen erklären könnte, aber wenn ich erst mal einen Lösungsvorschlag hätte, würde mir das auch schon weiterhelfen. Der Unterschied ist ja erstens mal, dass das Ding da oben einen Ordner kopiert und keine Datei. Aber ich weiß wirklich nicht, wo ich da eingreifen soll.
Danke schon mal im Voraus!
Nina
ich bin heute von meinem Chef im Praktikum ins kalte Wasser geschmissen worden und soll so schnell wie möglich eine .vbs-Datei umschreiben (bzw. neu erstellen, aber das kann ich erst recht nicht). Die alte Datei existiert und sieht wie folgt aus:
'v4.7
' File: ed-sichern.vbs
'
'Option Explicit
Dim fso, Datei
Dim Dateiquelle, Pfadneu, Pfadtest, Dateiziel, ZielVerz, Verzeichnis
Dim nCount
Dim oFSO
Dim oFolder
Set ofso = WScript.CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("F:\eDonkey down")
' Anzahl Dateien im Stammverzeichnis von C:
nCount = oFolder.Files.Count
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
'
' Ausgangsverzeichnis anpassen auf das ED-Verzeichnis
Set Verzeichnis = FSO.GetFolder("F:\eDonkey down")
'
'
'Zielverzeichnis' anpassen auf das Zielverzeichnis
Pfadneu = "F:\save\" & Datumzeit & "\"
'
fso.createfolder(Pfadneu)
Set Zielverz = FSO.Getfolder(Pfadneu)'Set Zielverz = FSO.Getfolder(Pfadtest)
For Each Datei In Verzeichnis.Files
on error resume next
Set DateiQuelle = fso.GetFile(Datei)
fso.moveFile DateiQuelle, Zielverz & "\"
Next
WScript.Quit
'
Function DatumZeit
'
' gibt ein Zeichenfolge zurück, die Datum / Zeit enthält
' und als Dateiname / Verzeichnisnae verwendet werden kann
Dim Zeit
Zeit = now()
' zweistellige Jahreszahl
DatumZeit = Right(Year(Zeit),2)
' zweistellige Monatszahl
If Len(Month(Zeit)) = 1 then DatumZeit = DatumZeit & "-0" & Month(Zeit)
If not Len(Month(Zeit)) = 1 then DatumZeit = DatumZeit & "-" & Month(Zeit)
' zweistellige Tageszahl
If Len(Day(Zeit)) = 1 then DatumZeit = DatumZeit & "-0" & Day(Zeit)
If not Len(Day(Zeit)) = 1 then DatumZeit = DatumZeit & "-" & Day(Zeit)
' zweistellige Stundezahl
If Len(Hour(Zeit)) = 1 then DatumZeit = DatumZeit & "_0" & Hour(Zeit)
If not Len(Hour(Zeit)) = 1 then DatumZeit = DatumZeit & "_" & Hour(Zeit)
' zweistellige Minutenzahl
If Len(Minute(Zeit)) = 1 then DatumZeit = DatumZeit & "'0" & Minute(Zeit)
If not Len(Minute(Zeit)) = 1 then DatumZeit = DatumZeit & "'" & Minute(Zeit)
' zweistellige Sekundenzahl
If Len(Second(Zeit)) = 1 then DatumZeit = DatumZeit & "'0" & Second(Zeit)
If not Len(Second(Zeit)) = 1 then DatumZeit = DatumZeit & "'" & Second(Zeit)
End Function ' DatumZeit
' **
Allerdings funktioniert sie nicht, obwohl die Verzeichnisse existieren. Ich bin jetzt gerade mal so weit gekommen, dass ich verstanden habe, dass die Zeilen, an deren Anfang ein ' steht, Kommentare sind. Ich habe noch nie mit VB gearbeitet und auch sonst von Programmierung keine Ahnung.
Es wird jetzt gewünscht, dass eine Datei "D:\draw\test.jpg" (als Beispiel) in ein Unterverzeichnis "D:\draw\backup" kopiert wird und zwar als "test_datumzeit.jpg", wobei datumzeit aktuelle Werte sein sollen. Angeblich ist das ganz einfach, aber bis jetzt hat meine Recherche im Internet bzw. auch in einem Buch mich nicht wirklich weitergebracht. Ich habe gehofft, dass hier evtl. jemand ist, für den das Ganze kein Problem darstellt. Am besten wäre natürlich, wenn er dabei noch ein bisschen erklären könnte, aber wenn ich erst mal einen Lösungsvorschlag hätte, würde mir das auch schon weiterhelfen. Der Unterschied ist ja erstens mal, dass das Ding da oben einen Ordner kopiert und keine Datei. Aber ich weiß wirklich nicht, wo ich da eingreifen soll.
Danke schon mal im Voraus!
Nina
4 Antworten
- LÖSUNG Biber schreibt am 08.09.2006 um 18:37:18 Uhr
- LÖSUNG Nina1985 schreibt am 08.09.2006 um 19:23:55 Uhr
- LÖSUNG Biber schreibt am 09.09.2006 um 01:59:03 Uhr
- LÖSUNG Nina1985 schreibt am 08.09.2006 um 19:23:55 Uhr
- LÖSUNG Atti58 schreibt am 09.09.2006 um 10:42:34 Uhr
LÖSUNG 08.09.2006 um 18:37 Uhr
Moin Nina1985,
willkommen im Forum.
Wichtigste Regel beim Programmieren:
Erstmal die Tastatur aus der Hand legen und sortieren.
Wo will ich hin, was hab ich an Informationen, welche brauche ich noch, welche kann ich mir schrittweise besorgen?
Du hast schon ganz gut angefangen:
Unsortierte Informationen/Hoffnungen/Vermutungen/Wünsche:
So, jetzt lass uns da mal die Luft aus dem Käse drücken, die Vermutungen rausstreichen und dafür ein paar Rückfragen machen:
Welche Infos muss das Programm bekommen, um eine Datei von A nach B zu kopieren?
Muss ich vorsehen, dass auch alle *.mp3-Dateien kopiert werden sollen oder ist es IMMER exakt eine?
Was soll passieren, wenn die Quelldatei nicht gefunden wird?
Was, wenn es den Zielordner nicht gibt?
Was, wenn die Zieldatei schon vorhanden ist?
Was, wenn die nicht auf das Laufwerk passt?
Fehler auf den Bildschirm? Oder in eine Logdatei?
Und Erfolgsmeldungen?
Angeblich ist das ganz einfach, aber bis jetzt hat meine Recherche im Internet bzw. auch in einem Buch mich nicht
wirklich weitergebracht. Ich habe gehofft, dass hier evtl. jemand ist, für den das Ganze kein Problem darstellt.
Du siehst, das Programm nimmt schon bei diesen Vorüberlegungen Gestalt an, ohne dass Du auch nur eine Zeile coden musst.
Versuch mal bitte, die Fragen zu beantworten (die Antworten musst zum Teil Du geben als Programmierer - der Kunde kann und will sich da gar nicht reindenken).
Wenn wir das "Wie soll es aussehen?" wissen, dann können wir zum Handwerklichen übergehen.
Gruß
Biber
willkommen im Forum.
Wichtigste Regel beim Programmieren:
Erstmal die Tastatur aus der Hand legen und sortieren.
Wo will ich hin, was hab ich an Informationen, welche brauche ich noch, welche kann ich mir schrittweise besorgen?
Du hast schon ganz gut angefangen:
Unsortierte Informationen/Hoffnungen/Vermutungen/Wünsche:
Es wird jetzt gewünscht, dass eine Datei "D:\draw\test.jpg" (als Beispiel) in ein >Unterverzeichnis "D:\draw\backup"
kopiert wird und zwar als "test_datumzeit.jpg", wobei datumzeit aktuelle Werte sein sollen. Angeblich ist das ganz
einfach, aber bis jetzt hat meine Recherche im Internet bzw. auch in einem Buch mich nicht wirklich weitergebracht. Ich
habe gehofft, dass hier evtl. jemand ist, für den das Ganze kein Problem darstellt.
kopiert wird und zwar als "test_datumzeit.jpg", wobei datumzeit aktuelle Werte sein sollen. Angeblich ist das ganz
einfach, aber bis jetzt hat meine Recherche im Internet bzw. auch in einem Buch mich nicht wirklich weitergebracht. Ich
habe gehofft, dass hier evtl. jemand ist, für den das Ganze kein Problem darstellt.
So, jetzt lass uns da mal die Luft aus dem Käse drücken, die Vermutungen rausstreichen und dafür ein paar Rückfragen machen:
- eine Datei "D:\draw\test.jpg" (als Beispiel) in ein >Unterverzeichnis "D:\draw\backup" kopiert wird
Wie bekommt das Programm das mit? Welche Infos muss das Programm bekommen, um eine Datei von A nach B zu kopieren?
Muss ich vorsehen, dass auch alle *.mp3-Dateien kopiert werden sollen oder ist es IMMER exakt eine?
Was soll passieren, wenn die Quelldatei nicht gefunden wird?
Was, wenn es den Zielordner nicht gibt?
Was, wenn die Zieldatei schon vorhanden ist?
Was, wenn die nicht auf das Laufwerk passt?
Fehler auf den Bildschirm? Oder in eine Logdatei?
Und Erfolgsmeldungen?
- und zwar als "test_datumzeit.jpg",
Na ja.. wie sieht denn Datumzeit aus? JJJJMMTT_hhmm? Oder mit Sekunden? Was ist sinnvoll?- wobei datumzeit aktuelle Werte sein sollen.
Was heißt "aktuell" ? Wenn ich drei Videos kopiere, sollen dann alle die Uhrzeit des Programm-Starts bekommen oder jede Datei die Uhrzeit des jeweiligen Kopie-Starts?wirklich weitergebracht. Ich habe gehofft, dass hier evtl. jemand ist, für den das Ganze kein Problem darstellt.
Du siehst, das Programm nimmt schon bei diesen Vorüberlegungen Gestalt an, ohne dass Du auch nur eine Zeile coden musst.
Versuch mal bitte, die Fragen zu beantworten (die Antworten musst zum Teil Du geben als Programmierer - der Kunde kann und will sich da gar nicht reindenken).
Wenn wir das "Wie soll es aussehen?" wissen, dann können wir zum Handwerklichen übergehen.
Gruß
Biber
LÖSUNG 08.09.2006 um 19:23 Uhr
Hallo Biber,
erst mal vielen, vielen Dank für diese nette, ausführliche Antwort! Ich bin froh, dass es anscheinend wirklich Menschen gibt, die sich noch an die Stelle eines Anfängers denken können und einen nicht mit einer Antwort konfrontieren, die man aufgrund fehlender Vorkenntnisse nicht versteht. Bis jetzt habe ich bei sowas immer eher schlechte Erfahrungen gemacht, also vielen Dank noch mal. Ich werde jetzt mal versuchen, die Fragen, die du gestellt hast, zu beantworten.
So, ich hoffe, das hat etwas Licht in die Sache gebracht . Vielen Dank und noch mal und ich würde mich auf die "handwerkliche" Hilfe freuen!
Nina
erst mal vielen, vielen Dank für diese nette, ausführliche Antwort! Ich bin froh, dass es anscheinend wirklich Menschen gibt, die sich noch an die Stelle eines Anfängers denken können und einen nicht mit einer Antwort konfrontieren, die man aufgrund fehlender Vorkenntnisse nicht versteht. Bis jetzt habe ich bei sowas immer eher schlechte Erfahrungen gemacht, also vielen Dank noch mal. Ich werde jetzt mal versuchen, die Fragen, die du gestellt hast, zu beantworten.
Wie bekommt das Programm das mit?
Jaaa, das würde ich auch gerne wissen . Sorry, aber an der Stelle "hakt" es bei mir schon. Wenn ich mit der Beispiel-Datei vergleiche, dann nehme ich an, dass die Befehle "Create Object" und "Get Folder" etwas damit zu tun haben, aber wie das Programm das jetzt wirklich mitbekommt, weiß ich nicht. Ich muss auch gestehen, dass mir die ganzen Sachen ganz oben, vor denen jeweils "Dim" steht, nichts sagen.Welche Infos muss das Programm bekommen, um
eine Datei von A nach B zu kopieren?
So, das kann ich versuchen: Es muss erstens wissen, wo A ist, zweitens, wie die Datei heißt, es muss die Info bekommen, dass es kopieren soll und es muss wissen, wo B ist. Das wäre so meinen naiven Ideen dazu .eine Datei von A nach B zu kopieren?
Muss ich vorsehen, dass auch alle *.mp3-Dateien kopiert werden sollen oder ist es IMMER exakt eine?
Da hast du mich jetzt verwirrt, meintest du .jpg-Dateien, die ich ja als Beispiel angegeben hatte oder hast du dich da auf das Beispiel-Skript bezogen? Es geht immer um eine Datei und zwar jedes Mal die gleiche. Wenn ich es richtig verstanden habe, wird mit dieser Datei die ganze Zeit gearbeitet, d. h., sie verändert sich und man möchte sozusagen "im Hintegrund" ein Skript, das die Datei kopiert, falls irgendwas schief geht.Was soll passieren, wenn die Quelldatei nicht gefunden wird?
Da bin ich überfragt, kann man davon ausgehen, dass das nicht stattfindet? Wenn nicht und sie wird nicht gefunden, dann soll am besten gar nichts passieren.Was, wenn es den Zielordner nicht gibt?
Kann man ihn dann erstellen lassen?Was, wenn die Zieldatei schon vorhanden ist?
Da bin ich jetzt davon ausgegangen, dass das nicht sein kann, da ja durch die Datums- und Zeitangaben ein jeweils anderer Name gewährt ist, wenn man davon ausgeht, dass nicht mehrmals pro Minute kopiert wird. Was, wenn die nicht auf das Laufwerk passt?
Da bin ich auch überfragt, ich denke, das passiert nicht, aber wenn doch... Hm, dann würde ich mal sagen, soll am besten auch gar nichts kopiert werden.Fehler auf den Bildschirm? Oder in eine Logdatei?
Ach so, oder gehörte das noch zu der Frage obendrüber? Dann wäre ein Fehler auf dem Bildschirm gut. Aber muss das da rein? Oder kann man darüber auch einfach gar keine Infos angeben?Und Erfolgsmeldungen?
Nein, sollen nicht angezeigt werden.> - und zwar als "test_datumzeit.jpg",
Na ja.. wie sieht denn Datumzeit aus? JJJJMMTT_hhmm? Oder mit Sekunden? Was ist sinnvoll?
JJJMMTT_hhmm klingt gut. (20060908_1920 wäre dann ein Beispiel? Ich denke mal, das kann man zur Not auch hinterher noch anpassen, oder?)Na ja.. wie sieht denn Datumzeit aus? JJJJMMTT_hhmm? Oder mit Sekunden? Was ist sinnvoll?
> - wobei datumzeit aktuelle Werte sein sollen.
Was heißt "aktuell" ? Wenn ich drei Videos kopiere, sollen dann alle die Uhrzeit des Programm-Starts bekommen oder jede Datei die Uhrzeit des jeweiligen Kopie-Starts?
Aktuell heißt (und da muss ich jetzt auch raten, wie es in dem konkreten Fall am besten wäre) wahrscheinlich am ehesten die Uhrzeit des Kopie-Starts und da es sich wie gesagt immer nur um eine Datei handelt, dürfte das dann ja einfacher werden.Was heißt "aktuell" ? Wenn ich drei Videos kopiere, sollen dann alle die Uhrzeit des Programm-Starts bekommen oder jede Datei die Uhrzeit des jeweiligen Kopie-Starts?
So, ich hoffe, das hat etwas Licht in die Sache gebracht . Vielen Dank und noch mal und ich würde mich auf die "handwerkliche" Hilfe freuen!
Nina
LÖSUNG 09.09.2006 um 01:59 Uhr
Na gut, Nina,
dann tasten wir uns mal weiter heran an die Anforderung...
Ich hab mal eine erste Rohfassung zusammengeschreddert, an und mit der man/frau jetzt ein bisschen spielen und feilen könnte.
Und ich habe ein paar schöne Suchbegriffe im Source versteckt, zu denen sich viele Detailinfos finden lassen im Netz.
Insbesondere empfehle ich, die Suchmaschine Deines Vertrauens zu befragen nach "FileSystemObject Syntax" und "WScript.Arguments".
Einige andere Funktiönchen, die in Source verwendet werden, sind so banal, wie es der Funktionsname in stililiertem Englisch vermuten lässt.
Zum Beispiel solche Sachen wie Minute(), Hour() oder Left()/Right() ... dass sind halt einfache Funktionen, die es in jeder Skript- oder Programmiersprache vorgefertigt gibt. Was diese Funktionen machen, lässt sich unschwer erraten...
So, dann hast Du am Wochenende was zum Spielen...
Beispielaufruf am CMD-Prompt:
Viel Spaß
Biber
dann tasten wir uns mal weiter heran an die Anforderung...
Ich hab mal eine erste Rohfassung zusammengeschreddert, an und mit der man/frau jetzt ein bisschen spielen und feilen könnte.
Und ich habe ein paar schöne Suchbegriffe im Source versteckt, zu denen sich viele Detailinfos finden lassen im Netz.
Insbesondere empfehle ich, die Suchmaschine Deines Vertrauens zu befragen nach "FileSystemObject Syntax" und "WScript.Arguments".
Einige andere Funktiönchen, die in Source verwendet werden, sind so banal, wie es der Funktionsname in stililiertem Englisch vermuten lässt.
Zum Beispiel solche Sachen wie Minute(), Hour() oder Left()/Right() ... dass sind halt einfache Funktionen, die es in jeder Skript- oder Programmiersprache vorgefertigt gibt. Was diese Funktionen machen, lässt sich unschwer erraten...
01.
' --------snipp copyStamped.vbs Vers. 001 (mit kleinen Fehlern!)
02.
' !!! Aufruf zumindest beim Testen vom CMD-Prompt:
03.
' !!! cscript //nologo copyStamped.vbs sourceFile targetFolder
04.
' --- später auch so:
05.
' copyStamped.vbs [lw:\path\]sourceFile targetFolder
06.
Option Explicit 'Tippfehler vermeiden - nur deklarierte Variablen verwenden
07.
08.
' wir schreiben in VBSkript... also benennen wir auch Variablen englisch
09.
' oXXX.. wenn es um Objects geht.. strYYY, wenn es um Strings geht
10.
Dim oFSO, oFile, strFileName, strNewStampedFilename, strFldrName
11.
12.
' Wir brauchen 2 Parameter (sourceFile und targetFolder) zwingend-
13.
' Sonst brauchen wir nicht anfangen- Also müssen zwei Argumente da sein.
14.
' In VBS heißen die wscript.arguments(n) von 0 bis wscript.arguments.count
15.
If wscript.arguments.count() < 2 then ' weniger als 2 Parameter? Dann Feierabend
16.
wscript.echo "Fehler: Parameter fehlt. Aufruf: copyStamped [path:\]sourceFile.ext targetFolder"
17.
wscript.quit(4) 'Raus mit Errorlevel 4 => soll bedeuten: "Parameterfehler"
18.
end if
19.
20.
' "einfache" Variablentypen wie Strings und numerische Werte mit [ var=wert] zuweisen
21.
strFileName = wscript.arguments(0) 'voller Quell-Dateiname ist Parameter 1
22.
strFldrName = wscript.arguments(1) 'Ziel-Ordner ist in Parameter 2 übergeben
23.
24.
' "nicht so einfache" Variablentypen wie Objects werden mit "Set oXXX = ..." instanziert
25.
Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
26.
27.
If not oFSO.FileExists(strFileName) then ' existiert die angegebene Datei?
28.
wscript.echo "Fehler: Datei " & strFileName & " nicht gefunden."
29.
wscript.quit(2) 'Raus mit Errorlevel 2 => Soll bedeuten: Quelldatei nicht gefunden
30.
End if
31.
32.
If not oFSO.FolderExists(strFldrName) then ' existiert der angegebene Zielordner?
33.
' Anmerkung: In der Version 0.02 könne wir auch den Zielordner bei Bedarf anlegen
34.
' dann würde jetzt folgen: oFSO.CreateFolder(strFldrName) ... heben wir auf für später
35.
' jetzt behaupten wir: Zielordner MUSS da sein.
36.
wscript.echo "Fehler: Zielordner " & strFldrName & " nicht gefunden."
37.
wscript.quit(2) 'Raus mit Errorlevel 3 => Soll bedeuten: Zielordner nicht gefunden
38.
End if
39.
40.
Set oFile=oFSO.GetFile(strFileName)
41.
strNewStampedFileName = oFSO.GetBaseName(strFilename) & "_" & DatumZeit & right(strFilename,4)
42.
On error resume next
43.
oFile.Copy strFldrName & "\" & strNewStampedFileName
44.
If oFSO.FileExist(strFldrName & "\" & strNewStampedFileName) then
45.
wscript.echo "Neuer Dateiname: " & strNewStampedFileName
46.
End if
47.
WScript.Quit
48.
49.
' ------------------------------------
50.
Function DatumZeit
51.
'
52.
' gibt eine Zeichenfolge zurück, die Datum / Zeit enthält
53.
' und als Dateiname / Verzeichnisnae verwendet werden kann
54.
55.
Dim Zeit
56.
Zeit = now()
57.
' wir wollen "JJJJMMTT_hhmm" ...also erstmal: vierstellige Jahreszahl
58.
DatumZeit = Right(Year(Zeit),4)
59.
' ....danach zweistellige Monatszahl
60.
If Len(Month(Zeit)) = 1 then DatumZeit = DatumZeit & "0"
61.
DatumZeit = DatumZeit & Month(Zeit)
62.
' ... dann zweistellige Tageszahl
63.
If Len(Day(Zeit)) = 1 then DatumZeit = DatumZeit & "0"
64.
DatumZeit = DatumZeit & Day(Zeit) & "_" ' den Trenner "_" gleich dazu..
65.
' ... jetzt zweistellige Stundenzahl
66.
If Len(Hour(Zeit)) = 1 then DatumZeit = DatumZeit & "0"
67.
DatumZeit = DatumZeit & Hour(Zeit)
68.
' zweistellige Minutenzahl
69.
If Len(Minute(Zeit)) = 1 then DatumZeit = DatumZeit & "0" & Minute(Zeit)
70.
DatumZeit = DatumZeit & Minute(Zeit)
71.
End Function ' DatumZeit
72.
' **
73.
' ---- snapp copyStamped.vbs
Beispielaufruf am CMD-Prompt:
01.
$cmd$cscript //nologo copystamped.vbs z:\autoruns.chm z:\save
02.
Neuer Dateiname: autoruns_20060909_0142.chm
Biber
LÖSUNG 09.09.2006 um 10:42 Uhr
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte