通过添加后缀重命名硬编码文件名,但使用Len删除原始文件名

时间:2013-06-21 13:43:42

标签: vbscript qtp

我有一个硬编码文件“ C:\ Results \ Results.xls ”,目前我正在通过QTP测试运行它。如果失败,我需要在文件末尾添加“-Failed”并成功“-success”。我目前正在使用

这样做
Set oFSO = CreateObject("Scripting.FileSystemObject") 
sResultFilename = ResultsPath & Day & sExcelFile
if iRowsFailed > 0 Then 
oFSO.MoveFile sResultFilename, sResultFilename & "-Failed.xls" 
Else
oFSO.MoveFile  sResultFilename, sResultFilename & "-Success.xls"
End if

结果失败 - “ C:\ Results \ Results.xls-Failed.xls

我想删除多余的中间'。xls'

我尝试使用Len功能

iLen = len(sResultFilename)
iLen1 = iLen - 4
sResultFilename = Mid(1, iLen1) 'can just do (1, ilen-4) but this easier to read

制作移动文件

oFSO.MoveFile sResultFilename & ".xls", sResultFilename & "-Failed.xls"

但是在运行它时,它甚至不会将文件名更改为先前的结果。

如何在不制作其他变量的情况下引用初始文件名?

2 个答案:

答案 0 :(得分:2)

使用Left()

oFSO.MoveFile sResultFilename, Left(sResultFilename, Len(sResultFilename)-4) & "-Failed.xls" 

答案 1 :(得分:2)

我建议在处理文件名时使用适当的方法:

ResultsPath = "C:\Results"
sExcelFile  = "Results.xls"

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.GetFile(fso.BuildPath(ResultsPath, sExcelFile))
if iRowsFailed > 0 Then
  result = "Failed"
Else
  result = "Success"
End if
f.Name = fso.GetBaseName(f) & "-" & result & "." & fso.GetExtensionName(f)