0

我有一个硬编码文件“ 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"

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

如何在不创建另一个变量的情况下引用初始文件名?

4

2 回答 2

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)
于 2013-06-21T17:56:13.843 回答
2

利用Left()

oFSO.MoveFile sResultFilename, Left(sResultFilename, Len(sResultFilename)-4) & "-Failed.xls" 
于 2013-06-21T14:05:20.230 回答