在这里编写一些泡菜新手。我对.cmd或.bat文件等几乎一无所知,但我明白.cmd是我正在进行的一个小项目的方法。基本上,我正在寻找一个文件,当执行该文件时,它会改变位于与.cmd文件位于同一文件夹中的两个单独的.ini文件中的两条非常特定的行。
对于NewGame.ini,我非常希望更改以下行:
FullHealthLimit = 1000
...到...
FullHealthLimit = 9999
对于NewGameUI.ini,我希望更改以下行:
m_PosOffset =(X = 25,Y = -99)
...到...
m_PosOffset =(X = -9999,Y = -9999)
就是这样。我只需要一个可执行文件来执行两个 - 希望 - 非常基本的任务。原因是我和我的朋友真正想要修改某些视频游戏,但希望更容易分发文件。
我会说实话:我在尝试实施其他主题的解决方案时遇到了很多麻烦,并使其适用于我的情况(主要是因为存在导致悲伤的等号),我开始怀疑如果它甚至可能。我在我的智慧结束,我告诉你! ;)
如果有人能够为我提供必要的代码,准备好被压缩成文本文件并保存为.cmd文件或诸如此类的东西,那么我将永远感激不尽。我只想要我和我的小圈子能够在我们卑微的社区中分发我们的小mod。
非常感谢您阅读并希望调查我的困境!我非常感谢任何帮助。干杯!
答案 0 :(得分:0)
这里有一些代码可以解决这个问题。我没有测试它,所以你必须尝试一下,看看它做了什么 - 然后报告是否有任何异常。只需将Fix.bat
文件放在与两个INI文件相同的文件夹中,然后从cmd
提示符(来自包含文件的目录)运行它。
@echo off
for /f "eol= delims=" %%i in (NewGame.ini) do (
if "%%i"=="FullHealthLimit = 1000" (
echo FullHealthLimit = 9999>> NewGame2.ini
) else (
echo %%i>> NewGame2.ini
)
)
echo [Unreal.Game_MaxAmmo]>>NewGame2.ini
echo p_zApplyOffset=true>>NewGame2.ini
echo p_zPosOffset=(X=-500,Y=-333)>>NewGame2.ini
:: Once you know it works, move the '::' from the next line to the first 'ren' line
::del NewGame.ini
ren NewGame.ini OldNewGame.ini
ren NewGame2.ini NewGame.ini
for /f "eol= delims=" %%i in (NewGameUI.ini) do (
if "%%i"=="m_PosOffset=(X=25,Y=-99)" (
echo m_PosOffset=^(X=-9999,Y=-9999^)>> NewGameUI2.ini
) else (
echo %%i>> NewGameUI2.ini
)
)
:: Once you know it works, move the '::' from the next line to the first 'ren' line
::del NewGameUI.ini
ren NewGameUI.ini OldNewGameUI.ini
ren NewGameUI2.ini NewGameUI.ini
您可以看到它不会以任何方式更改原始.ini
文件,并且只是为了安全而将其重命名为OldNewGame.ini
和OldNewGamUI.ini
。