batch-file - 可以从文本文件中读取特定行/字母的批处理代码
问题描述
我想编写一个代码来从文本文件中读取特定的行和字母。例如,如果 savefile.txt 是这样说的:
AandV
7
3827
我希望它做这样的事情:
-set %checkpoint% to [all of row 1 of savefile.txt]
-set %PWR% to [all of row 2 of savefile.txt]
-set %avr% to [1st letter of row 3 of savefile.txt]
-set %zvr% to [2nd letter of row 3 of savefile.txt]
-set %pvr% to [3rd letter of row 3 of savefile.txt]
-set %a2vr% to [4th letter of row 3 of savefile.txt]
有没有办法做到这一点?
额外:我还想知道如何写入文本文件的特定行,如下所示:
if exist DARKENEDcp.txt (
del DARKENEDcp.txt
)
@echo %checkpoint%> [line 1 of DARKENEDcp.txt]
@echo %PWR%> [line 2 of DARKENEDcp.txt]
@echo %avr%%zvr%%pvr%%a2vr%> [line 3 of DARKENEDcp.txt]
如果这是可能的,那对我的游戏将非常有用。
解决方案
由于您的行长度明显小于 1021 字节,并且只要每个都以 CRLF 或 LFCR 结尾,以下内容可能会有所帮助。
@( Set /P "checkpoint="
Set /P "PWR="
Set /P "avr=")<"savefile.txt"
@( Echo=%checkpoint%
Echo=%PWR%
Echo=%avr:~0,4%)>"DARKENEDcp.txt"
如果除了获取所需的输出内容之外,您还需要定义的所有变量:
@( Set /P "checkpoint="
Set /P "PWR="
Set /P "avr=")<"savefile.txt"
@( Set "a2vr=%avr:~3,1%"
Set "pvr=%avr:~2,1%"
Set "zvr=%avr:~1,1%"
Set "avr=%avr:~0,1%")
@( Echo=%checkpoint%
Echo=%PWR%
Echo=%avr%%zvr%%pvr%%a2vr%)>"DARKENEDcp.txt"