Variables 在.dat文件中存储变量
我正在编写一个简单的批处理脚本,将用户输入的内容与.dat中的一行文本进行比较(如有必要,我可以将其放入.txt文件) 到目前为止,我已经有了一种获取用户输入的方法,使用set: 程序使用cd导航到正确的目录: 但是现在我需要一种读取.dat文件内容的方法,并将其与用户输入的内容(给定的密码)进行比较 提前感谢您的帮助, -卢克 编辑: 有关.dat文件的详细信息: 该文件名为config.dat格式如下,其中Geronimo是正确的密码Variables 在.dat文件中存储变量,variables,batch-file,Variables,Batch File,我正在编写一个简单的批处理脚本,将用户输入的内容与.dat中的一行文本进行比较(如有必要,我可以将其放入.txt文件) 到目前为止,我已经有了一种获取用户输入的方法,使用set: 程序使用cd导航到正确的目录: 但是现在我需要一种读取.dat文件内容的方法,并将其与用户输入的内容(给定的密码)进行比较 提前感谢您的帮助, -卢克 编辑: 有关.dat文件的详细信息: 该文件名为config.dat格式如下,其中Geronimo是正确的密码 password = Geronimo 我还计划将其他
password = Geronimo
我还计划将其他信息存储在其中,我也希望稍后在脚本中将其分配给变量。如果
.dat
文件仅包含一行定义要比较的密码,则批处理文件可以是:
set /p "uname=Username: "
set /p "pass=Password: "
set /p comparepass=< "C:\Users\Luke\Desktop\Dropbox\BATCH SERVER\USERS\%login_username%\NAME.dat"
if "%pass%"=="%comparepass%" (
:: Insert code for when passwords are the same
) else (
:: Insert code for when passwords are not the same
)
set/p“uname=用户名:”
设置/p“通过=密码:”
set/p comparepass=<“C:\Users\Luke\Desktop\Dropbox\BATCH SERVER\Users\%login\u username%\NAME.dat”
如果“%pass%”=“%comparepass%”(
::在密码相同时插入密码
)否则(
::在密码不相同时插入密码
)
这应该对你有所帮助
Mona您可以像这样解析文件:
for /f "tokens=1,2 delims== " %%i in ('findstr "=" "ini.dat"') do set "%%i=%%j"
This is the dat file
ist stores the username
user = Luke
and the password
password = Geronimo
and some other stuff...
findstr“=”ini.dat“
将只处理其中包含=
的行。因此,您也可以将注释存储在文件中,如下所示:
for /f "tokens=1,2 delims== " %%i in ('findstr "=" "ini.dat"') do set "%%i=%%j"
This is the dat file
ist stores the username
user = Luke
and the password
password = Geronimo
and some other stuff...
编辑:
for
用于在多个对象上执行相同的操作。有关更多信息,请参见/?的
特别是在这里:
findstr“=”ini.dat
查找文件ini.dat
中包含=
它周围的单个qoutes”
告诉for
命令处理该命令的输出
(…)
中的表示:“对于找到的每一行”
“tokens=1,2 delims==”
表示:“取第一部分和第二部分(称为“token”),其中它们由=
或空格分隔。”
第一部分(标记)被分配给一个特殊变量%%i
。由于还有第二个标记,它被分配给以下字母:%%j
/f
告诉for
命令要使用的语法(请参见以获取/?
以了解其他可能性)
(
…)
中的表示:“对于找到的每一行”
do set%%i=%%j
将变量(令牌1(%%i)设置为令牌2(%%j)
如果文件中只有一个“数据”,Mona的方法更容易理解,也是更好的方法。如果有更多的数据集(正如您所问的“我也计划在其中存储其他信息”),那么for
循环是更好的方法
我知道,这很难理解,但值得花时间。在<代码>上使用echo试试,这样你可以更好地了解它的作用。有很多方法可以读取文件。你能上传你的.dat文件的格式吗?它是否只包含一行我们需要比较的内容。如果是这样,这很容易。如果不是请给出一个.dat文件包含什么的例子。此外,请描述.dat文件的名称。@Monacraft我刚刚更新了这篇文章,提供了一些更多的信息,但我现在将尝试您的解决方案。谢谢。好的,谢谢。我现在将尝试这个方法,但我是批处理新手,我只是想知道这个命令的每个部分都有什么作用。a非常感谢您的解释。再次感谢。只需稍微重新格式化.dat文件,现在这个方法非常有效。谢谢。