我有一个文本文件,在其中存储“文件名”及其路径
示例
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
的Windows
答案 0 :(得分:0)
您似乎想要相对路径。 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