我的批处理文件if else语句不起作用

时间:2015-06-17 21:24:41

标签: batch-file if-statement

所以我创建了一个有效的文件,并在没有if / else语句的情况下进行测试。当我在if语句中输入它时它根本不起作用,我的语法是错误的还是什么?感谢。

@echo off
set /p id= Folder Name:
set /p yn= Subfolders? (y/n):

If %yn% == "y"
Set rootDirectory = Y:\
md %id

Set rootDirectory = Y:\%id%
md %id%\Source
md %id%\Work
md %id%\PrintFinal

%SystemRoot%\explorer.exe %id%

Else
Set rootDirectory = Y:\
md %id%

%SystemRoot%\explorer.exe %id%

3 个答案:

答案 0 :(得分:1)

您忘记将()添加到群组对帐单。

调用IF /?,您将获得一个帮助页面,其中描述了IF语句的语法

答案 1 :(得分:1)

您需要将代码块括在括号内。

@echo off
set /p id= Folder Name:
set /p yn= Subfolders? (y/n):

If %yn% == "y" (
  Set rootDirectory = Y:\
  md %id%

  Set rootDirectory = Y:\%id%
  md %id%\Source
  md %id%\Work
  md %id%\PrintFinal
) else (
  Set rootDirectory = Y:\
  md %id%
)

%SystemRoot%\explorer.exe %id%

答案 2 :(得分:-1)

这是一个更新过的

@echo off
set /p id= Folder Name:
set /p yn= Subfolders? (y/n):

  If %yn% == y
  Set rootDirectory = Y:\
  md %id

它对我有用