Variables BAT如果存在%environment variable文件夹%(系统文件夹)

Variables BAT如果存在%environment variable文件夹%(系统文件夹),variables,batch-file,if-statement,environment,Variables,Batch File,If Statement,Environment,我想测试%PROGRAMFILES(X86)%\Folder是否存在,但它似乎不喜欢环境变量:/ 我的方式是: if EXIST %PROGRAMFILES(X86)%\Folder ( set VAR=%PROGRAMFILES(X86)%\Folder ) 无论我如何尝试,它总是输出false…以检查环境变量是否存在: if EXIST "%PROGRAMFILES(X86)%\Folder" ( set "VAR=%PROGRAMFILES(X86)%\Folder" )

我想测试%PROGRAMFILES(X86)%\Folder是否存在,但它似乎不喜欢环境变量:/

我的方式是:

if EXIST %PROGRAMFILES(X86)%\Folder (
    set VAR=%PROGRAMFILES(X86)%\Folder
)

无论我如何尝试,它总是输出false…

以检查环境变量是否存在:

if EXIST "%PROGRAMFILES(X86)%\Folder" (
    set "VAR=%PROGRAMFILES(X86)%\Folder"
)
if defined VARIABLE echo Yep, it's defined.
如果设置了变量,以下命令也会起作用并打印变量的当前值

set VARIABLE && echo Found it! || echo Nope, sorry!
但请注意,SET也响应前缀,所以如果您有一个名为VARIABLE的var,那么“SET var”和“SET v”也将返回true


不是你问的问题,而是我是如何读标题的,所以其他人可能也会有同样的问题。

补充说明:你需要在整件事情周围加上引号,因为%programfiles(x86)%几乎总是解析为一个带有空格的路径。没想到这一点,效果很好,非常感谢!感谢您提供的信息:)我将使标题更具体
if defined VARIABLE…
更简单、更精确。调用“if defined”很好。更新了答案。