批处理-解决相对路径

问题描述 投票:2回答:2

我的批处理脚本位于以下目录中:

\\test\public\windows\scripts\32\test.bat

我正在尝试获取此文件夹的路径:\ test \ public \ windows \ logs我尝试使用%~dp0来获取脚本的路径,并且我尝试过:

SET REL_PATH=..\..\

事实是它没有显示此文件夹。

windows batch-file cmd relative-path
2个回答
2
投票
中使用%〜dp0
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路径,请执行PUSHD和POPD:

@echo off
pushd \\test\public\windows\scripts\32\

REM do your work
call test.bat

popd

参考:How to run batch file from network share without "UNC path are not supported" message?


1
投票

使用网络驱动器时,请使用PUSHD命令。这会将未使用的驱动器号分配给UNC路径,因此您可以像平常一样浏览它。然后您可以使用POPD释放它。

© www.soinside.com 2019 - 2024. All rights reserved.