提问者:小点点

如何避免批量使用一堆IF语句


所以我是创建我的第一批文件的过程,我确信有一个更好的方式。似乎我能完成我想要的,但从我所读到的所有惯例来看,这似乎是草率的。

@echo off

set /p xyzCode= Please enter the code.

set x=0001
set xyz=0002
set xyza=0003

if %xyzCode% ==x echo %x%

问题是我需要600个变量,600个if语句。

在我工作的地方,一个产品有两个唯一的标识符一个代码和一个物料标识符,

我希望能够快速键入一个代码并获得物资标识符。

如果我使用的是Python,我认为答案是使用dicts,但需要一种方法来在批处理脚本中实现这一点。


共3个答案

匿名用户

null

  Code, Material Id
  0001, Abcd
  0123, Qwerty
  4567, Zxcvb

然后,您可以编写类似于以下内容的批处理脚本:

@echo off
set /p xyzCode= Please enter the code:
for /f "skip=1 tokens=1,2 delims=, usebackq" %%a IN ("Code&ItemList.txt") do (
    if %xyzCode%==%%a echo Material ID is %%b
)

键入以了解如何和为什么这样做。

匿名用户

如果我理解正确的话,我认为你可以使用延迟扩展来做你想做的事情。

在脚本顶部添加。然后,在底部添加以显示您输入的代码的值。

像这样:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

set /p xyzCode=Please enter the code. 

set x=0001
set xyz=0002
set xyza=0003

echo !%xyzCode%!

这样,您就不需要为每个可能的代码都有一个语句。如果输入,这个脚本将显示名为的变量的值。

匿名用户

听起来像是开关箱的工作

windows批处理文件中等效的开关语句

这仍然会占用很多空间,但我相信它们比IF语句快得多