首页 > 解决方案 > 在 if 语句中批量设置变量

问题描述

我有一个来自 .bat 文件的代码片段,它似乎无法正常运行。目的是让用户为这个片段设置一个变量(到 K),但是一旦我尝试在 if 语句中设置第二个变量(M 或 A) ,变量 %ufileType% 就永远不会设置。这是由于某些语法错误或逻辑造成的吗?

@echo off
setlocal enabledelayedexpansion
title Clean Install

ECHO Enter K:
SET /P uPrograms=
IF %uPrograms%==K (
  ECHO Change key to .mdb or .accdb? [M/A]
    SET /P !uFileType!=
    ECHO !uFileType!
    IF !uFileType!==M (
        ECHO Changing keys from .accdb to .mdb
    )
  IF !uFileType!==A (
    ECHO Changing keys from .accdb to .mdb
  )
) ELSE (
    ECHO Value not K
)

EXIT /B 0

非常感谢!

标签: batch-file

解决方案


    SET /P !uFileType!=

这条线是错误的。它应该是

    SET /P uFileType=

仅在要获取变量的值时使用%...%or !...!,而不是在要设置变量时使用。


推荐阅读