标题: [其他] 玩游戏存档切换 [打印本页]
作者: 珠七七 时间: 2017-2-28 11:41 标题: 玩游戏存档切换
大家好,本人玩win10星球大战这个游戏,有两个存档文件,命名为新和旧。
先附上代码:复制代码
具体流程 是,先判断游戏进程是否存在,再判断存档文件(a)是否存在,不存在就复制存档备份(b)里的存档到a里,如果存在就启动游戏,并确认进程是存在的。接着暂停。
按下任意键后,就开始切换游戏存档。如果是新的就换成旧,如果是旧的就换成新。打开游戏,并确认进程是存在的。
上面的代码有些疑问,希望热心的高手帮我解答一下。
疑问:
1、运行到echo 1后,直接启动游戏并暂停批处理。但代码没有启动游戏的,是哪里出了问题?
2、call :判断游戏进程那里,判断游戏进程是否存在,errorlevel的值会传递出来吗?如果不能,因为想把全部代码集中在同一个批处理,我应该使用什么参数呢?
3、我设置了路径,在复制存档的时候,是否用这些路径作为变量使用呢?(如:copy /b "D:\game\GameData_bak\playerprefs_new.dat" "C:\Users\James\AppData\Local\Packages\Disney.StarWarsCommander_6rarf9sa4v8jt\LocalState\",是否可以取代成:copy /b "%lz1%playerprefs_new.dat" "%lz0%")
请大家不吝赐教,感谢感谢!
作者: GNU 时间: 2017-2-28 13:51
45行和46楼是否应该互换位置?
作者: 我来了 时间: 2017-2-28 21:54
本帖最后由 我来了 于 2017-2-28 22:11 编辑
以下是AHK版本的,
随便写的伪代码
F1:: 热键是F1
Process, wait, game.exe, 3
NewPID = %ErrorLevel% ; 由于 ErrorLevel 会经常发生改变, 所以要立即保存这个值.
if NewPID = 0
{
MsgBox 指定的进程在3秒内未出现!
return
}
else
{
MsgBox 您要的进程确实存在 (进程的ID是 %NewPID%)
IfNotExist, C:\游戏存档.ini
{ ;MsgBox, C:\游戏存档.ini存档文件不存在
FileCopy, D:\游戏存档.ini, C:\游戏存档.ini
}
IfExist, C:\游戏存档.ini
{
Run , c:\game.exe
}
}
因为AHK的按键控制比较牛逼~~
建议楼主设两个热键,这样就能远程控制了。
作者: happy886rr 时间: 2017-2-28 21:57
回复 3# 我来了
不错,头像还是那么靓丽。
作者: 我来了 时间: 2017-2-28 22:19
playerprefs_old.dat
playerprefs_new.dat
这个你在单独存到一个目录中方便调用
楼主的描述有些含糊:
判断是否有进程
A存在 B不存在
就启动游戏 不存在就复制 存档
按下暂停啥意思,弄不明白。
作者: a2002 时间: 2017-6-29 15:42
本帖最后由 a2002 于 2017-6-29 15:46 编辑
你用了call命令后没有返回,跳转至”:启动游戏“标签了
应该在“:启动游戏”前加一行:goto :eof 或 exit /b
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |