我正在尝试创建一个批处理文件,要求用户输入员工ID和他们希望增加员工工资的金额。为此,我必须为使用用户输入的ID的员工更改.txt文件的工资字段。下面是我目前使用的代码,但我似乎无法得到任何地方,因为它只是吐出错误。批处理文件文本编辑
REM Prompt the user for the ID they wish to search
set /p idSearch=Enter the employee's ID number:
set /p raise=Enter the raise ammount:
echo.
REM Set the file to search
set file="employees.txt"
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=1-5 delims=," %%i in (!file!) do (
if %%i=="ID: !idSearch!" (
set /a new_amount=%%s+!raise!
echo ID: %%i FIRST: %%f LAST: %%l AGE: %%a Salary: $!new_amount!
) else (
echo ERROR
)
)
pause
这里是什么在.txt文件的例子:
ID: 20 FIRST: John LAST: Smith AGE: 30 SALARY: $20000
对于显示的数据行,由于行中没有逗号,整行将被分配给'%% i'。如果您要删除'delims'子句,将使用默认空间,'%% i'将获得'ID:','%% j'' 20','%% k'' FIRST:'等等。这似乎不会与您使用的'echo'结婚。 – Magoo
除了@Magoos评论和回答没有货币变量类型,所以你不能使用set/a与一个美元符号开始的字符串。在你的文件的每一行都有字段名是非常低效的。 – LotPings
@Magoo我已经得到了它的工作感谢您的帮助,但是当我尝试将其保存到文本文件时,它将删除文件中的任何其他员工。你有什么建议如何解决这个问题? – Brett