【发布时间】:2016-06-27 04:19:18
【问题描述】:
我正在尝试设置一个环境变量以防它不存在,如果它存在,则脚本将退出。我正在尝试使用以下代码。
@echo off
echo %machine% > c:\machineoutput.txt
findstr /I /c:"C:\Oracle\Ora12c\perl\bin" c:\machineoutput.txt
if %errorlevel% == 0 (
goto SETPATH
) else (
EOF
)
:SETPATH
setx /m machine "%oracle_home%\perl\bin;%path%"
:EOF
exit
但有些地方并没有按应有的方式工作。我可以设置变量,但即使变量存在,它也会再次设置它然后退出。
请帮助我找出我做错了什么。
【问题讨论】:
-
为什么你在第一个分支
goto SETPATH,但只在EOF没有去其他分支的任何地方? -
@LưuVĩnhPhúc 这个批处理文件是从另一个批处理文件中调用的,所以如果路径存在,这个批处理文件将被终止,并且调用它的父批处理文件将恢复它的操作。所以我如果路径存在,我将在此文件中进入 EOF,否则将设置路径。
-
不,EOF 不是一个有效的命令,你会得到错误。如果你想去脚趾EOF标签,使用
goto EOF
标签: batch-file windows-server-2012