У меня есть VBScript, который я написал долгое время, чтобы определить PDF на основе имени файла. Затем он добавил данные в имя файла и переместил его в соответствующий каталог. Я сделал это как Select Case
, чтобы он зациклился на многие имена файлов. Теперь я пытаюсь изменить скрипт, чтобы проверить, находится ли файл с новым именем уже в целевом каталоге, и если да, удалите старый файл и скопируйте новый (также если файл открыт и не может быть перезаписывать, игнорировать и переходить к следующему). Я искал на многих форумах и смог найти фрагменты того, что я пытаюсь, но не смог успешно интегрировать процессы в свой скрипт. Вот то, что у меня есть для моего случая выбора, этот раздел - это то, что повторяется с изменением «VariableAddedtoFileName».Удалить, если присутствует в пункте назначения, скопировать в пункт назначения, если ошибка Перейти к следующему
Select Case Pname
Case "FileName"
sDestinationFolder = "\\Server\FileDir\"
sDestinationName = "VariableAddedtoFileName"
Set oFSO = CreateObject("Scripting.FileSystemObject")
sSourceFile = objStartFolder & "\" & objFile.Name
sDestinationFile = sDestinationFolder & "\" & Pname & " " & _
sDestinationName & Right(objFile.Name, 4)
If oFSO.FileExists(sDestinationFile) Then
Set oFSO = Nothing
Else
oFSO.MoveFile sSourceFile, sDestinationFile
Set oFSO = Nothing
End If
Case "StatementScriptTest"
Case Else
End Select
Так что, если изменить Set oFSO
линию в If oFSO.FileExists
группы oFSO.DeleteFile sDestinationFile
Она удаляет файл, но не будет копировать новую. Если Rerun, то он копирует файл, так как его больше нет. Я попробовал несколько комбинаций попыток манипулировать операциями if
и then
без везения. Я также попытался удалить файл до раздела if
безрезультатно. Будем очень благодарны любой помощи.
Если полный сценарий необходим, я могу предоставить, я только перечислил этот раздел, поскольку он является частью, которая неоднократно переигрывается. Также я знаю, что есть несколько сообщений, похожих на это, но я хочу выяснить, как обновить мой код для работы.
Update: Я установил перезапись с помощью CopyFile
:
If oFSO.FileExists(sDestinationFile) Then
oFSO.CopyFile sSourceFile, sDestinationFile, True
Else
oFSO.CopyFile sSourceFile, sDestinationFile, True
Set oFSO = Nothing
End If
Но я все еще получаю ошибки, если файл открыт, когда попытка перезаписать сделана.
Фантастическая [rcdmk] (http://stackoverflow.com/ пользователи/1046610/rcdmk)! Похоже, я слишком усложнял ситуацию. Время для еще кофе ... –