我有一个位于多个文件夹中的批处理文件,并且我需要在此文件中替换旧subst T: .
命令,net use
因为 Windows 7 中的单元(驱动器)具有不同的属性。
但是,我发现net use
只允许绝对路径,例如:
net use T: \\path\to\folder
我无法使用绝对路径,但这net use T: .
是不允许的(它会引发错误)。
有没有办法net use
从文件夹执行命令以便它使用当前的.bat 目录?
我认为对我来说最好的解决方案是能够使用批处理命令获取绝对限定路径 (\path\to\folder)。(在这种情况下,%cd% 和 chdir 变量不起作用)。有关获取当前目录或文件夹名称的问题没有用,因为该net use
命令不允许以下路径x:\path\to\folder
答案1
将会%~dp0
满足您的要求(即\\server\share\to\folder
)。但是你不能将其用于您的net use
命令。该net use
命令仅接受\\server\share
创建驱动器号的部分。
您可以做一些工作来删除 -part \to\folder
,然后稍后将其添加到批处理文件中,但使用命令可能更好pushd \\server\share\to\folder
。使用该命令会创建一个临时驱动器字母,并且当前目录会自动更改为正确的文件夹。使用 -command,popd
您可以回到开始的位置,并且临时驱动器会被释放。
所以:
C:\>
C:\>pushd \\wdmycloud\public\new folder
Z:\New folder>::do your thing
Z:\New folder>
Z:\New folder>popd
C:\>
顺便说一句,如果您需要找出创建了什么临时驱动器,您可以%~d0
在批处理文件中使用。以及%~dp0
完整路径,等等(或者%cd%
当然 :))。