Batch file 我的批处理文件if else语句不是';行不通

Batch file 我的批处理文件if else语句不是';行不通,batch-file,if-statement,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 m

因此,我创建了一个文件,在没有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%
您忘记将
添加到组语句中


调用
IF/?
,您将获得一个帮助页面,其中描述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
) else (
  Set rootDirectory = Y:\
  md %id%
)

%SystemRoot%\explorer.exe %id%
这是最新的

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

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

它对我有效

这将始终执行set和md语句