尝试从批处理文件中查找并加载信息后收到错误

2024-01-14

我一直在批量进行一些实验,目前正在开始一个小型的文本冒险,但是当我测试保存游戏时,程序返回错误“系统找不到指定的文件”。有人可以帮我吗? (如果有帮助的话,我在学校电脑上)。

这是我的相关代码片段:

pushd \\schoolname\MyName$\My Documents\Discount Zork
popd

< savegame.sav (    
  set /p timesPlayed
)

任何帮助将不胜感激。提前致谢!


我假设您的意图是从您的savegame.sav文件,所以也许从一开始就改变你的方法会对你很有帮助。

我提供的第一个建议是始终在游戏变量中使用相同的字符作为前缀。(在下面的例子中,我选择了{,为了改善外观,我还给它们添加了后缀},这是可选的)

为了确保以该字符为前缀且已存在于本地环境中的变量不会干扰我们的游戏变量,我们首先禁用它们。

现在我们创建三个带标签的部分,用于显示所有变量及其值、将所有变量保存到文件中以及从该文件加载所有变量。

那么我们就可以call根据需要使用这些标签。

这是一个不同的基本示例来展示它们的工作原理:

@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion

Rem Changing the current working directory, and pushing the previous to stack
PushD "\\schoolname\MyName$\My Documents\Discount Zork" 2> NUL || GoTo :EOF

Rem Disabling any predefined local variables beginning with {
For /F "Delims==" %%G In ('"(Set {) 2> NUL"') Do Set "%%G="

Rem Simulating first gameplay values for demonstration
Set /A {timesplayed}=3,{health}=80,{strength}=126,{defence}=76,{attack}=57

Rem showing values
Call :ShowVals

Rem saving values to file
Call :SaveVals

Rem zeroing variables for demostration
Set /A {timesplayed}={health}={strength}={defence}={attack}=0

Rem showing new values
Call :ShowVals

Rem loading saved values back into game
Call :LoadVals

Rem proving reloaded values
Call :ShowVals

Rem Returning to previous working directory from stack, and ending script
PopD
GoTo :EOF

:ShowVals
Set {
%SystemRoot%\System32\timeout.exe /T 7 1> NUL
Exit /B

:SaveVals
((Set {) 2> NUL) 1> "savegame.sav"
Exit /B

:LoadVals
For /F "UseBackQ Delims=" %%G In ("savegame.sav") Do Set "%%G"
Exit /B
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试从批处理文件中查找并加载信息后收到错误 的相关文章

随机推荐