Replace
関数を使用して、文字や文字列をファイル名に追加するときに問題はありません。VBScript - replace関数とgetbasenameメソッドを使用してファイル名を変更する
j = prependstring
for each i in folder.files
k = len(i.name)
i.name = replace(i.name, i.name, j & left(i.name, k))
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)
しかし、私は各単語の主要な文字は、私はエラーを「ファイルが既に存在する」取得資産計上されているバージョンで、全体base name
を交換しようとした場合、次のコードを使用して。
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!"
下図のように私はMoveFile
メソッドを使用して同じ目的を達成することができます
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!"
replace
バージョンが動作しないんなぜ私が理解できないのですか?
これがクリアされました。ありがとうございます。Ekkehard :) –