Как получить относительные каталоги / частичные пути для отображения в виде эхо-вывода из файла Windows .bat?
Как отделить имя файла от полного пути в партия?
Говорит обо всем, кроме.
Я нашел буквы дисков, имена файлов, расширения, сокращенные (8.3) имена и полные пути, но не относительные пути.
Я запускаю рекурсивный цикл FOR /R
; который пересекает подкаталоги. Я хотел бы что-то - в этом нет двадцати символов бесполезной информации о пути - что говорит мне, в каком каталоге находится каждый дублирующийся файл ... без жесткого кодирования файла .bat для размещения в определенном каталоге / пути?
Может быть, решением было бы измерить длину пути сценария и отрезать его от начала полного пути? Но я не знаю, как этим манипулировать.
Скрипт может находиться во многих местах:
F:\a.bat<BR>
F:\Dir1\fileA.txt<BR>
F:\Dir20\fileA.txt
C:\Users\Longusername\Desktop\Container\a.bat<BR>
C:\Users\Longusername\Desktop\Container\Dir1\fileA<BR>
C:\Users\Longusername\Desktop\Container\Dir20\fileA
И прямо сейчас у меня есть только варианты вывода (%%~nxG
):
fileA.txt
fileA.txt
Что не говорит мне, в каком каталоге находится каждый файл... или (%%~pnxG
)
\Users\Longusername\Desktop\Container\Dir1\fileA.txt
\Users\Longusername\Desktop\Container\Dir20\fileA.txt
Что я хотел бы, из любого места:
\Dir1\fileA.txt
\Dir20\fileA.txt
Может отсутствовать начальный \
, но это незначительно. Допустимы и другие параметры, кроме эха, если они будут работать на большинстве оконных машин. Однако они могут привести к большему количеству вопросов - как я выяснил другие мои части с эхом.