所以我是创建第一个批处理文件的过程,我相信有更好的方法。似乎我可以完成我想要的东西但是从我读过的所有惯例看来它似乎很草率。
@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,但需要一种方法在批处理脚本中执行此操作。
答案 0 :(得分:1)
您可以尝试保留所有代码和标识符的单独文本或csv文件,如下所示:
Code&ItemList.txt
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
)
输入for /?
以解释其工作原理和原因。
答案 1 :(得分:1)
如果我理解正确,我认为你可以使用延迟扩展来做你想做的事。
在脚本顶部添加SETLOCAL ENABLEDELAYEDEXPANSION
。然后,在底部添加echo !%xyzCode%!
以显示您输入的代码的值。
像这样:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
set /p xyzCode=Please enter the code.
set x=0001
set xyz=0002
set xyza=0003
echo !%xyzCode%!
这样,您不需要为每个可能的代码都有IF
语句。如果输入xyz
,此脚本将显示名为xyz
的变量的值。
答案 2 :(得分:0)