我遇到了一个具体的问题。我的目标是使用 \ w 作为第1个参赛,名称为第2个,数字为第3个,实现人名和姓名的输入;
并且 \ r 游行作为第一个参数,在屏幕上查找并显示我刚刚输入的人的姓名作为 \ r 之后的第二个参数。
我的批处理文件名是database.bat
例如,当我输入
时
database \w Peter.Parker +79342342
textfile完全接受它
但是当我想让Peter.Parker的号码进入时
database \r Peter.Parker
它没有成功。 主要代码
@echo off
set "BUILDMODE=%1"
set "FIO=%2"
if "%BUILDMODE%"=="\w" (
echo %2 >>"C:\Users\user\Desktop\in.txt"^
echo %3 >>"C:\Users\user\Desktop\in.txt"
)
if "%BUILDMODE%" == "\r" (
set A
set B
set C
@echo off
for /f "tokens=2,3" %%A in ("C:\Users\user\Desktop\in.txt") do ( if "%%A"=="%FIO%" (echo %B%))
你能指出我做错了吗?
提前致谢
答案 0 :(得分:0)
正如我在上面的评论中所述。您的代码在输出中回显了echo这个词。此外,您没有使用正确的令牌,还需要使用USEBACKQ选项,因为引用了文件名的路径。您还错误地回显了%% B变量。你有%B%。我个人不会使用反斜杠作为选项。几乎所有应用程序的标准都是使用正斜杠(/ r / w)。
无论如何,您的代码已修复并经过测试。
@echo off
set "BUILDMODE=%1"
set "FIO=%2"
if "%BUILDMODE%"=="\w" (
>>"C:\Users\%username%\Desktop\in.txt" echo %2 %3
)
if "%BUILDMODE%"=="\r" (
for /f "usebackq tokens=1,2 delims= " %%A in ("C:\Users\%username%\Desktop\in.txt") do (
if "%%A"=="%FIO%" echo %%B
)
)