在 if 语句的设置变量中扩展 %userprofile%。批
Expanding %userprofile% within a Set Variable within an if Statement. Batch
我有类似下面的东西...
set /p dir=Specify Path:
if exist %dir% (
echo ok
) else(
echo not ok
)
如果用户输入路径或变量,如 %userprofile%
当使用 %dir% 时,%userprofile% 不会在其中展开。
例如
set dir=%userprofile%
echo %dir% :: this does not expand
call echo %dir% :: this does expand
cd %dir% :: does not expand
call cd %dir% :: expands
但是我如何在 if 语句中扩展路径。
我一直在努力解决这个问题,但我并不是很了解 DelayedExpansion。
谢谢。
如果用户输入环境变量作为路径,您可以使用 CALL 命令轻松扩展该变量。所以您的代码将如下所示。
@ECHO OFF
set /p "dir=Specify Path:"
CALL set "dir=%dir%"
if exist "%dir%" (
echo ok
) else (
echo not ok
)
我有类似下面的东西...
set /p dir=Specify Path:
if exist %dir% (
echo ok
) else(
echo not ok
)
如果用户输入路径或变量,如 %userprofile%
当使用 %dir% 时,%userprofile% 不会在其中展开。
例如
set dir=%userprofile%
echo %dir% :: this does not expand
call echo %dir% :: this does expand
cd %dir% :: does not expand
call cd %dir% :: expands
但是我如何在 if 语句中扩展路径。
我一直在努力解决这个问题,但我并不是很了解 DelayedExpansion。
谢谢。
如果用户输入环境变量作为路径,您可以使用 CALL 命令轻松扩展该变量。所以您的代码将如下所示。
@ECHO OFF
set /p "dir=Specify Path:"
CALL set "dir=%dir%"
if exist "%dir%" (
echo ok
) else (
echo not ok
)