我如何找到被标记为驱动器的本地文件夹

时间:2019-02-06 08:51:53

标签: batch-file cmd

我正在使用SUBST命令%CD%将文件夹映射为驱动器

一段时间后,我发现我需要知道之前的路径,然后才能成为特定的驱动器,而且不知道如何获得它。

subst T: /d

subst T: %CD%\VMSC_OFP_P1

我想知道T的完整路径,并可能将其保存为变量或txt文件。

2 个答案:

答案 0 :(得分:0)

要使用:

SUBST > path.txt

以获取txt文件中的完整路径

答案 1 :(得分:0)

更新:使用findstr仅获取 T: 驱动器!

  

如果您不知道基本的完整路径/跟踪器,则将其设置为 T: 驱动器,您可以简单地在bat文件中使用此代码 :< / p>

@echo off 
for /f "tokens=2* delims==^> " %%i in ('subst ^| findstr /lic:"T"') do set "path_subst=%%i%%j"
echo/%path_subst%

您可以使用一些选项来执行此操作...

:: Save in text to temp/txt file
for /f "tokens=2* delims==^> " %%i in ('subst ^| findstr /lic:"T"') do echo/%%i%%j">"%temp%\path_subst.txt"

::读入一个变量

set /p path_subst=<"%temp%\path_subst.txt"

或通过使用setx设置为全局变量 仅在重启后才在系统上可用

:: save before
setx path_subst %CD%\VMSC_OFP_P1

或通过添加 reg键setx值

 reg add HKCU\Environment /v path_subst /d "%CD%\VMSC_OFP_P1" /f 

setx 重新启动系统之前获取路径

:: in bat file:
for /f "tokens=3 delims=^ " %%i in ('reg query HKCU\Environment ^| findstr /i /c:"path_subst"') do echo/%%i

:: in commandline:
for /f "tokens=3 delims=^ " %i in ('reg query HKCU\Environment ^| findstr /i /c:"path_subst"') do echo/%i

从bat文件中的setx 重新启动系统后检索路径

@echo off 
for /f "tokens=2* delims==^> " %%i in ('subst ^| findstr /lic:"T"') do set "path_subst=%%i%%j"
echo/%path_subst%

subst T: "%path_subst%"

:: do some task....

subst T: /d
  

当{em> setx中不再需要任何变量时,您可以通过以下方式将其删除::    

 reg delete HKCU\Environment /v path_subst /f 2>nul >nul