Как динамически извлекать самое последнее имя файла в скрипт

#vbscript

#vbscript

Вопрос:

У меня есть приведенный ниже скрипт, который удаляет лишний пробел после запятой ( , ). Мое требование, как показано ниже.

Чтобы скопировать самое последнее ИМЯ файла в атрибут myFile, как показано ниже. Можем ли мы изменить приведенный ниже сценарий, чтобы извлекать самый последний файл вместо того, чтобы вводить его вручную?

 Set objFSO = CreateObject("Scripting.FileSystemObject")

Dim filetxt
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const fmtUnicode = -1, fmtASCII = 0, fmtDefault = -2

Set re = New RegExp
Dim strInput
Dim Matches
Dim Match

Dim myFile
'change the following file path to point to your file
myFile = "\dgggsymg_t_t_t$CDO_MTK_SMTBusiness Performance ReportingHari krishnacsvtotabusp_GO_CallDetailsByVqueue_2016-09-27.csv"

re.IgnoreCase = True

Set filetxt = objFSO.OpenTextFile(myFile, ForReading, False, fmtDefault)

Dim arrFileLines()
i = 0
Do Until filetxt.AtEndOfStream
  ReDim Preserve arrFileLines(i)
  arrFileLines(i) = filetxt.ReadLine

  strInput = arrFileLines(i)
  'WScript.Echo(strInput)

  re.Pattern = "s"
  re.Global = True

  arrFileLines(i) = re.Replace(strInput, "")
  'WScript.Echo(arrFileLines(i))

  i = i   1
Loop

filetxt.Close

Set filetxt = objFSO.OpenTextFile(myFile, ForWriting, False, fmtDefault)
For j = LBound(arrFileLines) To UBound(arrFileLines)
  filetxt.WriteLine(arrFileLines(j))
Next
filetxt.Close

Set filetxt = Nothing
  

Комментарии:

1. Можем ли мы изменить приведенный ниже сценарий, чтобы извлекать самый последний файл вместо того, чтобы вводить его вручную? Конечно, мы можем. Мы сделаем это за вас? Маловероятно, не видя никаких усилий с вашей стороны. Что вы пытались решить самостоятельно? Каковы были результаты ваших попыток? Чем они отличались от того, что вы ожидали? Как вы определяете «самый последний файл» в первую очередь?

2. И для определения самого последнего пути я использовал приведенный ниже код, который извлекает файл из источника по указанному пути strSource = учитывая мой путь strDest = учитывая мой путь intDays = 1 —принимает последний файл ( 1 день ) Set objFSO = CreateObject(«Scripting . FileSystemObject») Установите objFolder = objFSO . GetFolder(strSource) При возобновлении работы с ошибкой Следующий набор objFiles = objFolder . Файлы dtmEarliestDate = DateAdd(«d», -intDays, Now()) Для каждого objFile в objFiles Если objFile . DateLastModified > CDate(dtmEarliestDate) Затем objFSO.CopyFile objFile, strDest

3. @KrishNa — если вам нужно опубликовать больше кода, сделайте это как редактирование вашего вопроса, а не как комментарий. Это позволит вам отформатировать код так, чтобы он был читабельным.

Ответ №1:

Я смог получить решение

Я использовал ниже, чтобы добавить имя файла к пути.

для /f «delims=» %%x в (‘dir /od /a-d /b .’) установите «recent=%%x»

и используется !недавний! чтобы получить имя.