rmtshare \\server\sharename$ | for /f "tokens=3,4,5 delims=\" %%A in ('find "Path"') DO
SET path1=%%A\%%B\%%C
echo %path1%
它将完成设定区域的所有操作。我想取出共享的物理路径并将其转换为稍后要使用的变量。我的方法不起作用,我不知道我错过了什么。
答案 0 :(得分:0)
确保要在FOR循环中运行的命令位于同一行(例如for /f ... do set path1=%%A\%%B\%%C
,或者,如果有多个命令,则将它们分组在括号中,如下所示:
for /f ... do (
echo "Setting path1"
set path1=%%A\%%B\%%C
)
...
(另外,您是否设置了SETLOCAL EnableDelayedExpansion
?如果是,您可能需要使用!path1!
代替%path1%
。)
答案 1 :(得分:0)
我相信SET不是持久的,你应该使用SETX在命令提示符下设置一个变量,让它保持在CMD会话之外, afaik,SETX在Windows 7上是原生的,但在旧版Windows版本的资源包中可用。
答案 2 :(得分:0)
您需要在选项中包含 usebackq ,如下所示:
for /f "usebackq tokens=3,4,5 delims=\" %%A in ...