2013-06-21 3 views
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.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

Я бы рекомендовал использовать соответствующие методы при работе с именами файлов:

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) 
+0

Большое спасибо, гораздо больше профессиональных –

2

Использование Left()

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

отлично работает, спасибо большое. –