Windows 批处理-解析相对路径
我的批处理脚本位于以下目录中:Windows 批处理-解析相对路径,windows,batch-file,cmd,relative-path,Windows,Batch File,Cmd,Relative Path,我的批处理脚本位于以下目录中: \\test\public\windows\scripts\32\test.bat 我正在尝试获取此文件夹的路径:\test\public\windows\logs 我尝试使用%~dp0获取脚本的路径,我尝试了: SET REL_PATH=..\..\ 问题是它没有显示这个文件夹 SET REL_PATH=..\..\ 路径根据您的指示指向路径,要验证它从何处开始,请 echo %CD% 它将告诉您系统正在查看的路径 然后将相对路径从%CD%设置为脚本的路
\\test\public\windows\scripts\32\test.bat
我正在尝试获取此文件夹的路径:\test\public\windows\logs
我尝试使用%~dp0
获取脚本的路径,我尝试了:
SET REL_PATH=..\..\
问题是它没有显示这个文件夹
SET REL_PATH=..\..\
路径根据您的指示指向路径,要验证它从何处开始,请
echo %CD%
它将告诉您系统正在查看的路径
然后将相对路径从%CD%
设置为脚本的路径
如果您在执行此操作后陷入困境,请发表评论
例如:
echo %CD%
给出C:\windows\system32
您想在c:\test\public\windows\scripts\32\test.bat执行批处理文件
你需要这样做
SET REL_PATH=%CD%\..\..\test\public\windows\scripts\32\
要移动到此路径,请执行以下操作:
cd /d %REL_PATH%
要解决UNC路径do PUSHD和POPD,请执行以下操作:
@echo off
pushd \\test\public\windows\scripts\32\
REM do your work
call test.bat
popd
参考资料:使用网络驱动器时,请使用PUSHD
命令。这将为UNC路径分配一个未使用的驱动器号,以便您可以像正常一样导航它。然后您可以使用POPD
来释放它
例如:
@ECHO OFF
PUSHD "\\test\public\windows\scripts\32"
REM This will be \\test\public\windows
DIR ".\..\..\"
POPD
路径是c:\windows
,变量REL\u path
没有告诉我发生了什么,因为我使用的是UNC
路径?据我所知,您的批处理文件位于共享网络驱动器中,您希望从计算机上执行它。。。对吗?也许你只需要把你的UNC路径映射成一条普通路径。可能通过NET USE
或MKLINK
。完成后,路径操作可能会容易得多。