VBScript для удаления файлов из исходной папки после запуска

У меня есть VBScript, который открывает любые файлы XML в одной папке и сохраняет их как файлы excel в другой папке.

Кажется, это работает, хотя полученные файлы Excel не имеют расширения XLS, есть идеи, почему?

то, что я хотел бы, чтобы сценарий сделал, это удалить все файлы из исходной папки. как бы я это сделал?

Dim xlApp, xlWkb, SourceFolder,TargetFolder,file
Set xlApp = CreateObject("excel.application")
set fs = CreateObject("Scripting.FileSystemObject")
Const xlNormal=1
SourceFolder="c:\test\xml"
TargetFolder="c:\test\xls"

'Hide Excel
xlApp.Visible = false

'Process each file in SourceFolder
for each file in fs.GetFolder(SourceFolder).files
'Open file in SourceFolder
Set xlWkb = xlApp.Workbooks.Open(file)
'Get Filename
BaseName= fs.getbasename(file)
'Concatenate full path. Extension will be automatically added by Excel
FullTargetPath=TargetFolder & "\" & BaseName
'Save as XLS file into TargetFolder
xlWkb.SaveAs FullTargetPath, xlNormal
'Close file
xlWkb.close
next

Set xlWkb = Nothing
Set xlApp = Nothing
Set fs = Nothing

person chenks    schedule 09.10.2013    source источник
comment
Вы уже пробовали что-нибудь самостоятельно удалить файлы? Дело не в том, что эта функция скрыта или недокументирована.   -  person Tomalak    schedule 09.10.2013
comment
Я не знаком с процессом, поэтому и прошу совета. Я не писал этот сценарий, он уже был на месте, и меня просят изменить его.   -  person chenks    schedule 09.10.2013
comment
Да, но цель этого сайта не в том, чтобы найти того, кто сделает вашу работу. Пожалуйста, проведите минимум исследование и попытайтесь исправить это самостоятельно. Примеры кода, как использовать VBScript для удаления файлов, буквально разбросаны по всему Интернету, просто вы еще даже не пробовали.   -  person Tomalak    schedule 09.10.2013
comment
спасибо за ваш конструктивный вклад. вы не прокомментировали другой вопрос, который я задал относительно отсутствующего расширения файла XLS.   -  person chenks    schedule 09.10.2013
comment
ОК, я добавил fs.DeleteFile(C:\test\xml*.xml) в сценарий, который, похоже, делает это, является ли это наиболее эффективным способом сделать это, я не знаю.   -  person chenks    schedule 09.10.2013
comment
Нет необходимости быть резким. То, что вы узнали, как это сделать за 8 минут, только доказывает мою точку зрения. Я не уверен, что вы подразумеваете под наиболее эффективным. Вы ищете способ удалить файлы или способ удалить файлы как можно быстрее? Эффективность совершенно не имеет значения в вашем сценарии. ;) В любом случае, это стандартный способ удаления файлов в VBScript, это абсолютно нормально и максимально быстро.   -  person Tomalak    schedule 09.10.2013
comment
Что касается вашего второго вопроса: файлы не имеют расширения xls, потому что вы его не даете. Excel сохраняет их точно под тем именем файла, которое вы передаете (FullTargetPath). Просто добавьте нужное расширение. (FullTargetPath & ".xls"). То, что расширение добавляется автоматически, когда вы вручную сохраняете файл в программе, является функцией пользовательского интерфейса Excel. Функция .SaveAs() API просто берет все, что вы ей даете. Формат файла управляется с помощью соответствующего параметра ., а не через расширение.   -  person Tomalak    schedule 09.10.2013


Ответы (1)


Файлы не получают расширения, потому что вы его не даете.

Выходной файл

TargetFolder & "\" & fs.GetBaseName( file )

GetBaseName не включает расширение. Просто добавьте расширение

TargetFolder & "\" & fs.GetBaseName( file ) & ".xls" 
person MC ND    schedule 14.10.2013