Как распечатать путь к файлу в пакетном файле Windows? - PullRequest
0 голосов
/ 12 октября 2018

У меня есть текстовый файл, в котором я храню «имена файлов» вместе с его путем

Пример

Modules\App\a.txt
Modules\Engine\b.txt

Я могу получить «имя файла»'используя @echo %%~nxA.

Однако, когда я пытаюсь @echo %%~pA, он печатает мой текущий путь к Windows и путь к файлу

Пример

Когда я выполняю скрипт из D: \ Temp, он добавляет \ Temp

\Temp\Modules\App\a.txt
\Temp\Modules\Engine\b.txt

Однако вывод должен быть 'Modules\App\a.txt', а НЕ '\Temp\Modules\App\a.txt'

Короче говоря, яищет окна, эквивалентные dirname

1 Ответ

0 голосов
/ 12 октября 2018

Вы, кажется, хотите относительные пути.for не может этого предоставить, но вы можете обойти это - просто удалите текущий путь к папке:

@echo off
setlocal enabledelayedexpansion

(echo Modules\App\a.txt
 echo Modules\Engine\b.txt)>file.txt

for /f "delims=" %%A in (file.txt) do (
  set "tmp=%%~fA"
  REM set "tmp=%%~dpA"
  echo !tmp:%cd%\=!
)

Результат:

Modules\App\a.txt
Modules\Engine\b.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...