sel*_*mar 5 windows cmd batch-file
嗨,我在批处理文件的变量中有完整的文件路径.如何获取其第一级和第二级父目录路径?
set path=C:\SecondParent\FirstParent\testfile.ini
Run Code Online (Sandbox Code Playgroud)
npo*_*aka 13
不要使用变量PATH.%PATH%是命令提示符使用的内置变量.
@echo off
set "_path=C:\SecondParent\FirstParent\testfile.ini"
for %%a in ("%_path%") do set "p_dir=%%~dpa"
echo %p_dir%
for %%a in (%p_dir:~0,-1%) do set "p2_dir=%%~dpa"
echo %p2_dir%
Run Code Online (Sandbox Code Playgroud)
正如npocmaka正确建议的那样,选择一个不同于的变量%PATH%
(或其他任何环境变量)。其次,请确保您的脚本用于setlocal
避免通过此脚本中的变量影响控制台会话的环境。第三,只需\..
为要导航的每个祖先添加一个。无需理会子字符串操作。
@echo off
setlocal
set "dir=C:\SecondParent\FirstParent\testfile.ini"
for %%I in ("%dir%\..\..") do set "grandparent=%%~fI"
echo %grandparent%
Run Code Online (Sandbox Code Playgroud)