首页 > 解决方案 > 可以从文本文件中读取特定行/字母的批处理代码

问题描述

我想编写一个代码来从文本文件中读取特定的行和字母。例如,如果 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]

如果这是可能的,那对我的游戏将非常有用。

标签: batch-file

解决方案


由于您的行长度明显小于 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"

推荐阅读