Dateinamen mit VBScript ändern

phönix3

Grünschnabel
Hallo Leute,

ich versuche eine Datei mit VBScript von "C:\tmp.ini" in "C:\test.ini" umzubenennen.
Dabei benutze ich folgenden befehl:
Name "C:\tmp.ini" As "C:\test.ini"

nur wenn ich den Script ausführe erhalte ich immer eine fehlermeldung an der stelle "As":
"Microsoft VBScript compilation error: Expected end of statement!"

in ähnlichen Forenbeiträgen hab ich nichts darüber gefunden, auch google konnte mir nicht weiterhelfen.

ich habe mir auch schon überlegt einfach eine neue Datei mit dem gewünschten Dateinamen zu erstellen und den Inhalt Zeilenweise zu koppieren. Allerdings finde ich, das das eine sehr "unsaubere" lösung ist

über den Grund des Fehlers und mögliche Lösungsansäzte würde ich mich sehr freuen
mfg phönix3
 

wincnc

Erfahrenes Mitglied
Hallo, versuch´s mal so:
Code:
Dim fso, objFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFile = fso.GetFile("C:\tmp.ini") ' hier mit Pfadangabe
objFile.Name = "test.ini" ' hier ohne Pfadangebe
 

phönix3

Grünschnabel
hi das klappt nur zum teil...
wenn es eine datei mit dem namen "test.ini" schon gibt erscheint dies als Fehlermeldung und er bricht ab...

er sollte aber die vorhandene Datei überschreiben (egal ob sie schreibgeschützt und/oder versteckt ist)
 

wincnc

Erfahrenes Mitglied
Das hat dann auch nichts mehr mit Datei umbenennen zu tun.
Da hattest Du besser nach Datei kopieren fragen sollen.
Code:
dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile "C:\tmp.ini", "C:\test.ini", True
set fso = nothing
 

Hawkings

Erfahrenes Mitglied
möglich wäre es auch wenn du die rename methode von Windows verwendest, unter Befehlszeilenreferenz kann man sich auch mal anschauen ;-)

Code:
Dim lPath, lName, lNewTitle, lCommand,lResult

lPath = "C:\"
lName = "lala.txt"
lNewTitle = "po.txt"

Set Wshshell = CreateObject("Wscript.Shell")
lCommand = "ren "&lName& " "&lNewTitle
WScript.Echo lCommand
lResult = Wshshell.Run (lCommand, 0, True)

If lResult = 0 Then
	MessageBox "Die Datei wurde erfolgreich in "&lNewTitle&" umbenannt", vbOKOnly, vbInformation
Else
	MessageBox "Die Datei konnte aus irgendeinen Grund nciht umbenannt werden, löschen sie sie ;-)", vbOKOnly, vbInformation
End if

Code ist einfach mal so schnell hingeschrieben, aber so in etwa...

Mein Vorgänger hat ne super Methode, ist easy :)
 

phönix3

Grünschnabel
so habs geschaft, das ist der code...

Set bootFile = fsob.GetFile("C:\test.ini")
fsob.DeleteFile bootFile, True

Set tmpFile = fsob.GetFile("C:\tmp.ini")
tmpFile.Name = "test.ini"