У меня есть имя файла с полным путем, и я хочу получить имя файла и его родительский каталог. Как я могу разобрать это в пакетном сценарии?
например, для / f "токенов = 4,5 delims = \" %% a in ("F: \ mydata \ WebLogs \ MyServerName001 \ u_ex100206.log")
в приведенной выше строке токен 4 - это имя сервера, а 5 - имя файла. Но это не всегда будет 4 и 5. Итак, как я могу получить последние два токена в пакетном сценарии? потому что в моем сценарии имя файла будет последним токеном и имя сервера будет перед этим токеном.
Сообщение, на которое указал Хелвик, находится сверху. Вот простой способ получить родительский каталог (или родительский родительский каталог и т. Д.):
for /D %%I in ("F:\mydata\WebLogs\MyServerName001\u_ex100206.log") do (
echo filename=[%%~nxI]
)
for /D %%I in ("F:\mydata\WebLogs\MyServerName001\u_ex100206.log\..") do (
echo parent dir=[%%~nxI]
)
for /D %%I in ("F:\mydata\WebLogs\MyServerName001\u_ex100206.log\..\..") do (
echo parent's parent dir=[%%~nxI]
)
... и т.д. Файлу не обязательно существовать.
Используйте% ~ nxI в качестве имени файла и используйте код из выбранного ответа в этом сообщение stackoverflow для родительской папки.