欧陆风云4吧 关注:333,426贴子:10,275,330
  • 12回复贴,共1

【存档备份注意】批处理备份读取存档

取消只看楼主收藏回复

新人渣渣水平稀烂,可是也想刷成就,不得已还得备份存档,每次手动很麻烦,就做了个bat,不知道有没有人需要,可以留言


IP属地:湖北1楼2022-12-22 23:54回复
    一个一个来,我估计bat文件发不了,直接把代码贴过来试试行不行,先声明我是为了做这个现学的批处理,我是计算机小白,有bug请麻烦轻拍


    IP属地:湖北5楼2022-12-23 14:07
    回复
      首先是打开EU4存档文件夹,一般是在我的文档下面的文档文件夹里的Paradox Interactive\Europa Universalis IV,在里面任意建一个文件夹,比如我建了个ZZZZ,名字随意,最好别带中文,我没测试过中文文件夹是否可行


      IP属地:湖北6楼2022-12-23 14:10
      回复
        然后就是把批处理文件做出来,就在刚刚ZZZZ文件夹里,新建一个文本文档,然后直接把代码粘贴进去,然后把文件后缀名改成.bat就可以了,需要用的时候就双击运行就行


        IP属地:湖北7楼2022-12-23 14:12
        回复
          【1】备份存档
          作用是先在ZZZZ生成编号0的文件夹,然后如果已经有了这行代码就自动失效了,不用管;
          之后新建一个文件夹,在最新的文件夹数字上+1
          把save games里的1.eu4这个存档,复制到刚刚建好的文件夹里,完成备份。
          代码如下【手动删除@ 后面的空格,不然发不出来】:
          @ echo off
          md 0
          for /f %%i in ('dir /b/ad/od/t:c') do set /a j=%%i+1
          md %j%
          copy "E:\My Documents\Documents\Paradox Interactive\Europa Universalis IV\save games\1.eu4" %j%\


          IP属地:湖北11楼2022-12-23 14:19
          回复
            【2】恢复最新存档
            作用是把最新建的文件夹里的存档,复制回save games里面,但是经常备份存档的大家应该知道,eu4默认是读取建立时间最晚的存档,所以这样默认点继续游戏会读取备份的存档1_Backup.eu4
            所以会先判断是否存在1_Backup.eu4,存在的话,就把这个删除,然后再把1.eu4覆盖过去,实现读取存档
            代码如下【请手动删除@ 后面的空格,不然发不出来】
            @ echo off
            for /f %%i in ('dir /b/ad/od/t:c') do set /a j=%%i
            if exist "..\save games\1_Backup.eu4" (del "..\save games\1_Backup.eu4")
            copy "%j%\1.eu4" "..\save games"


            IP属地:湖北12楼2022-12-23 14:21
            回复
              【3】恢复任意编号的存档
              作用是让你手动输入希望恢复存档的文件夹编号,其他同【2】
              代码如下【请手动删除@ 后面的空格,不然发不出来】
              @ echo off
              chcp 65001>nul
              set /p h=请输入想恢复第几个存档:
              if exist "..\save games\1_Backup.eu4" (del "..\save games\1_Backup.eu4")
              copy "%h%\1.eu4" "..\save games"


              IP属地:湖北13楼2022-12-23 14:22
              回复
                基本这三个就够了,需要注意的是一开始我尝试用字母排序方式,找排最后的文件夹+1,但是发现不行,因为编号10会排在1和2之间,而不是在9之后,这样文件夹到2位数就失效了。所以现在采用的是文件夹创建时间的方式判断最后一个文件夹,也就意味着不要手动创建数字比最大的更小的文件夹,不然估计也会失效。
                然后就是存档名称,我写的是1.eu4,大家可以任意改成自己想要刷的存档名称,记得3个文件,还有Backup文件都要改


                IP属地:湖北14楼2022-12-23 14:25
                回复
                  顺便安利一下我做的成就统计excel表,方便大家自我激励用

                  上面可以进行筛选,成就顺序是目前中文wiki的默认排序,有一个普通难度成就放错位置了,统计的时候公式考虑这一点了
                  完成度一栏填写【1】自动变对勾且涂黑,里面是我当前的进度,手动删除一下就好
                  右边自动统计完成比例
                  https://tieba.baidu.com/p/8179274495?pid=146325236578&cid=0#146325236578


                  IP属地:湖北15楼2022-12-23 14:29
                  回复
                    然后有时候游戏切出去比较卡,有可能出现不确定自己是否成功读取存档的情况,这时候就需要完成有个提醒,最好还不需要玩家操作的,查了一圈没找到暂停几秒的代码,我太菜了真的是现学现卖,我是渣渣
                    后来找到个替代方案,就是用ping 本机ip2次的方法强行暂停一下,然后加上系统提示音的代码,那是个特殊字符我不确定是否能复制到贴吧,粘出来试一下吧:
                    echo
                    ping -n 2 127.1>nul
                    这两行加在代码最后


                    IP属地:湖北16楼2022-12-23 14:32
                    回复
                      好像不太行,这个字符是在命令提示符里按ctrl+g打出来的,然后再复制粘过去的,大家可以试试
                      代码应该长这样


                      IP属地:湖北17楼2022-12-23 14:35
                      回复
                        经过一段时间的测试,对代码做了一些优化(手动删掉@ 后面的空格 ):
                        【1】备份存档
                        @ echo off
                        chcp 65001>nul
                        if not exist 0 (md 0)
                        for /f %%i in ('dir /b/ad/od/t:c') do set /a j=%%i+1
                        md %j%
                        copy "E:\My Documents\Documents\Paradox Interactive\Europa Universalis IV\save games\1.eu4" %j%\>nul
                        echo
                        echo 已生成%j%号存档!
                        ping -n 2 127.1>nul
                        【2】恢复最新的存档
                        @ echo off
                        chcp 65001>nul
                        for /f %%i in ('dir /b/ad/od/t:c') do set /a j=%%i
                        if exist "..\save games\1_Backup.eu4" (del "..\save games\1_Backup.eu4")
                        copy "%j%\1.eu4" "..\save games">nul
                        echo
                        echo 已恢复%j%号存档!
                        ping -n 2 127.1>nul
                        【3】恢复任意存档
                        @ echo off
                        chcp 65001>nul
                        set /p h=请输入想恢复第几个存档:
                        if exist "..\save games\1_Backup.eu4" (del "..\save games\1_Backup.eu4")
                        copy "%h%\1.eu4" "..\save games">nul
                        echo
                        echo 已恢复%h%号存档!
                        ping -n 2 127.1>nul


                        IP属地:湖北19楼2022-12-28 15:35
                        回复
                          经过一段时间测试,基本稳定了,直接把文件传到网盘了
                          链接: https://pan.baidu.com/s/1RbVYDgPnImp1X02o3cd37w?pwd=wdtw 提取码: wdtw 复制这段内容后打开百度网盘手机App,操作更方便哦


                          IP属地:湖北20楼2023-01-11 22:56
                          收起回复