Как получить базовое имя, когда оно усекается с точкой в ​​пути? - PullRequest
0 голосов
/ 18 июня 2019

Я пропустил трюк здесь?

Dim fso
Set fso = WScript.CreateObject("Scripting.FileSystemObject")

WScript.Echo fso.GetBaseName("D:\temp\1. Some Folder")
WScript.Echo fso.GetBaseName("D:\temp\Some Other Folder Without A Dot")
WScript.Echo fso.GetAbsolutePathName("D:\temp\1. Some Folder")

Приведенный выше код для базового имени усекается с точкой / точкой.

D:\temp\1

Я предполагаю, что VBScript брошен точкой.Есть ли хитрость, чтобы обойти это?Или вам нужно изменить полный путь после последнего индекса косой черты?

Ответы [ 2 ]

1 голос
/ 18 июня 2019

Полагаю, GetFileName даст желаемый результат.

Из документов:

Возвращает последний компонент указанного пути, который не является частью спецификации привода.

0 голосов
/ 23 июня 2019

Функция GetBaseName действительно видит все после последней точки как расширение, поэтому ожидаемое имя папки усекается.

Безопаснее, но только для существующих путей может использовать функцию GetFolder для получения объекта папки и извлекать из этого свойство Name:

WScript.Echo fso.GetFolder("D:\temp\1. Some Folder").Name

возвращает

  1. Некоторая папка
...