vbscript 使用计数器生成唯一文件名
Posted
技术标签:
【中文标题】vbscript 使用计数器生成唯一文件名【英文标题】:vbscript unique filename generation using counter 【发布时间】:2018-09-03 14:50:30 【问题描述】:我有一个 vbscript,它生成一个包含六位数字的文件,然后如果文件已经存在,我想在末尾添加 0001、0002、0003。我想我在这里遗漏了一些非常明显的东西,因为我在桌面上放了一个测试文件 0000610001.doc,我的脚本应该弹出一条新消息,说 0000610002.doc。
FolderRoot="c:\users\mozleye\"
Subfolder="desktop"
ClCode="000061"
n=1
filename=FolderRoot & subFolder & "\" & CLCode
'Pad the filename with leading zeros after the client number
Select Case Len(n)
Case 1
filename=filename & "000"
Case 2
filename=filename & "00"
Case 3
filename=filename & "0"
End Select
filename=filename & n & ".doc"
MsgBox(filename)
'If the file name exists then keep adding 1 to n, regenerating the file name until the file name we
'have generated no longer exists
Do While File objFSO.FileExists(filename)
MsgBox("Found a match!")
filename=FolderRoot & subFolder & "\" & CLCode
Select Case Len(n)
Case 1
filename=filename & "000"
Case 2
filename=filename & "00"
Case 3
filename=filename & "0"
End Select
n=n+1
filename=filename & n & ".doc"
MsgBox("New filename :" & filename)
Loop
MsgBox("All done")
【问题讨论】:
我不是 Vb 专家,但如果没有匹配项,我会尝试使用 \\ 作为反斜杠 【参考方案1】:好的,所以最后我将起始计数器减少到零,然后将“while”位移动到循环旁边以强制它至少运行一次。我必须承认我仍然不完全明白为什么它有效而其他版本没有,但我希望这对某人有用:
Do
filename=FolderRoot & subFolder & "\" & CLCode
Select Case Len(n)
Case 1
filename=filename & "000"
Case 2
filename=filename & "00"
Case 3
filename=filename & "0"
End Select
n=n+1
filename=filename & n & ".doc"
Loop While objFSO.FileExists(filename)
【讨论】:
以上是关于vbscript 使用计数器生成唯一文件名的主要内容,如果未能解决你的问题,请参考以下文章