Ich habe kein Problem beim Voranstellen von Zeichen oder Zeichenfolgen an einen Dateinamen mit der Replace
-Funktion, z.VBScript - Umbenennen von Dateien mit Replace-Funktion und getbasename-Methode
j = prependstring
for each i in folder.files
k = len(i.name)
i.name = replace(i.name, i.name, j & left(i.name, k))
Auch nicht anhängig z.B.
j = appendstring
for each i in folder.files
ext = fso.getextensionname(i)
k = instrrev(i.name,".")-1
i.name = replace(i.name, i.name, left(i.name, k) & " " & j & "." & ext)
jedoch den folgenden Code verwenden, wenn ich die gesamten base name
versuchen zu ersetzen, mit einer Version, in den führenden Buchstaben jeden Wort groß geschrieben wird, erhalte ich eine „Datei bereits vorhanden“ Fehler.
option explicit
dim fso, folder, wshell, strpath, strname, i, abspath, base, ext, capstr
set fso = createobject("scripting.filesystemobject")
set folder = fso.getfolder(".")
set wshell = createobject("wscript.shell")
strpath = wscript.scriptfullname
strname = fso.getfilename(strpath)
function wordcaps(strinput)
dim x
for x = asc("a") to asc("z")
strinput = replace(strinput, " " & chr(x), " " & ucase(chr(x)))
next
wordcaps = ucase(left(strinput, 1)) & mid(strinput, 2)
end function
for each i in folder.files
if i.name <> strname then
base=fso.getbasename(i)
capstr = wordcaps(base)
'wscript.echo capstr
i.name = replace(i.name, base, capstr)
end if
next
wscript.echo "Done!"
ich das gleiche Ziel MoveFile
Methode erreichen kann, wie unten dargestellt:
for each i in folder.files
if i.name <> strname then
abspath=fso.getabsolutepathname(i)
base=fso.getbasename(i)
ext=fso.getextensionname(i)
capstr = wordcaps(base)
fso.movefile abspath, folder & "\" & capstr & "." & ext
end if
next
wscript.echo "Done!"
Ich kann nicht verstehen, warum die replace
Version nicht funktioniert?
Das klärt das auf, danke Ekkehard :) –