如何修复if语句以期望命令?

时间:2014-01-11 20:15:40

标签: batch-file error-handling goto

我有一个if语句检查变量“root”是否等于'File'但是当我这样做时说它不期望以下命令。

@Echo Off
setLocal
:StartUpConfiguration
Cls
Color 0A
Title ACP

:Start
Set Input=nul
Set /P Input=[%CD%]
For /F "tokens=1,2* delims=." %%a In ('Echo %Input%') do (
   Set Root = %%A
   Set Function = %%B
   Set Execute = %%C
)
If %Root%==File Goto File
If %Root%==File If %Function%==Exist Goto File.Exist
If %Root%==File If %Function%==Run Goto File.Run
Goto Start

当我将输入设置为“文件”时,它显示“此时Goto意外。”然后关闭我试图调试问题,但我无法搞清楚。我检查过“root”是否是一个环境变量,而不是。也许它与“setLocal”有关?

1 个答案:

答案 0 :(得分:0)

Set Root = %%A

将变量root_设置为值_File(带空格;我写_以清楚显示位置) 你必须写

Set Root=%%A

甚至更好

Set "Root=%%A"

for变量也区分大小写:%%a不是%%A