【问题标题】:Batch script store data within itself批处理脚本在自身内部存储数据
【发布时间】:2013-05-22 14:45:27
【问题描述】:

为了好玩,我正在批量制作一个记忆游戏,但遇到了一个问题。我有一个球员分数的高分文件,无论我使用什么文件类型,它都可以读取和编辑。

我想知道 .bat 文件是否有可能在其自身中永久存储数据,即使在我关闭程序之后也是如此。所以当再次打开它时,数据仍然存在。这可能吗?

提前谢谢你们。

【问题讨论】:

    标签: file batch-file save internal


    【解决方案1】:
    @echo off
    for /f "tokens=1 delims=:" %%D in ('findstr /R /N "end_of_batch_label" "%~f0"' ) do set end_batch=%%D
    
    echo -- HERE WE MAKE A NEW SELF CONTAINED RECORD --
    
    echo echo data entry 4^>^>"%~f0"
    echo(>>"%~f0"
    echo data entry ^4>>"%~f0"
    
    echo -- HERE STARTS PRINTING OF SELF CONTAINED DATA --
    type "%~f0" | more +%end_batch%
    exit /b 0
    
    
    :end_of_batch_label
    
    data entry 1
    data entry 2
    
    
    data entry 3
    

    当然可以。试试上面的代码。

    【讨论】:

    • 谢谢,但你能解释一下吗?我对编程比较陌生,这有点超出我的能力。
    • 数据条目在:end_of_batch_label之后开始。使用findstr /R /N "end_of_batch_label" "%~f0"我们可以找到所有包含end_of_batch_label的行并将此命令放入FOR /F我们可以提取这些的最后一行。使用@ 987654326@我们可以在指定的行之后打印文件的内容。希望这会有所帮助...
    • 是否可以在.bat文件中将玩家分数保存在批量游戏中,然后调用数据?还有 "%~f0" 和更多 +%end_batch% 做什么?
    • "%~f0" 是一个特殊参数,它将保存批处理文件的路径(除非使用 shift 命令)。` +%end_batch% ` 是传递给MORE 命令的参数(在找到end_of_batch_label 并将编号分配给end_batch 的行之后)。例如type some_file|more +5 将在第5 行之后打印some_file 的所有内容。
    猜你喜欢
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2022-01-21
    相关资源
    最近更新 更多