2013-07-01 4 views
0

Я хочу идти вниз полный путь к file и список последних два parent directoriesРаспаковка каталог/имя поддиректории из абсолютного пути в пакетном сценарии

например:

\\publicshare\products\apps\123.456\OSfile 

Я хочу, чтобы извлечь 123.456 и OSfile в моем командном сценарии.

+0

Вопросы должны демонстрировать минимальное понимание решаемой проблемы. Расскажите, что вы пытались сделать, почему это не сработало и как оно должно работать. См. Также: [Контрольный список вопросов переполнения стека] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) – devnull

ответ

4
SET MYPATH=\publicshare\products\apps\123.456\OSfile 

for %%i in ("%MYPATH%") do SET FIRST=%%~nxi&SET MYPATH=%%~dpi 
SET MYPATH=%MYPATH:~0,-1% 
for %%i in ("%MYPATH%") do SET SECOND=%%~nxi 

echo %FIRST% -- echoes OSFile 
echo %SECOND% -- echoes 123.456 

первый для заявления извлекает имя файла + расширение (%% ~ NXI), затем устанавливает MYPATH к остальной части пути (буква диска + путь).

"SET MYPATH =% MYPATH: ~ 0, -1%" удаляет обратную косую черту.

Второй оператор FOR извлекает последний элемент из MYPATH, который теперь является каталогом.

+0

Нет необходимости изменять значение MYPATH. Просто используйте 'for %% i in ("% MYPATH% \ .. "), установите« SECOND = %% ~ nxi »' – dbenham

+0

@dbenham, это правда, есть более чем один способ обмануть кошку. – Joe

Смежные вопросы