我正在为现有的地图编辑器创建一个独立安装包,供我的游戏地图制作者同行使用。该地图编辑器名为 Finalsun,它有一个名为 FinalSun.ini 的 INI 文件,在 .ini 文件中,它应该像这样引用 game.exe:
**[TS]
Exe=ExeFile 路径**
但是 'exe=' 键处没有任何内容。大多数人都不知道如何修复它。因此它需要位于上一级的 Game.exe 的路径,所以我想创建一个批处理文件,在 'Exe=' 键处添加用户的 game.exe 绝对路径
finalsun.ini 在里面文件夹1/地图编辑器/finalsun.ini game.exe 在里面文件夹1/游戏.exe (finalsun.ini 的上一级)
因此需要澄清的是,我需要一个批处理文件命令来编辑 FinalSun.ini,使其具有:
[电视]
Exe=用户目录/文件夹1/game.exe
我用于安装的批处理文件也在 Folder1 中。
更新:
好吧,我做了一些研究,发现了一些东西,它可以创建一个新的 ini 文件副本,并进行所需的更改https://stackoverflow.com/questions/25635303/how-to-edit-multiple-text-lines-in-a-ini-file-using-batch-script
所以复制的文件是好的,我仍然可以让它工作,我现在唯一要弄清楚的是如何添加 game.exe 的绝对路径(距当前文件夹一个文件夹)
这是我正在使用的代码:
@ECHO OFF
SETLOCAL
SET "tssection="
(
FOR /f "tokens=1*delims=" %%a IN (Convertfile.ini) DO (
FOR /f "tokens=1*delims== " %%b IN ("%%a") DO (
SET repro=Y
IF "%%c"=="" (
SET "tssection="
IF /i "%%b"=="[TS]" SET tssection=y
) ELSE (
IF DEFINED tssection IF "%%b"=="Exe" (SET "repro="&ECHO(Exe=%INeedPathRightHere%)
)
IF DEFINED repro ECHO(%%a
)
)
)>Finalsun.ini
FC Convertfile.ini FinalSun.ini
GOTO :EOF
所以我需要 Game.exe 的绝对路径(当前目录的上一级),我将 %INeedPathRightHere% 放在这里
第二次更新:
好吧,我找到了一行令我非常满意的代码,这个代码对我有用:
@echo off
set "file=Map Editor\Finalsun.ini"
SET mypath=%~dp0
if exist "%file%" (
findstr /v /i "Exe=" "%file%" >"%file%.tmp"
>>"%file%.tmp" echo/-Exe=%mypath:~0,-1%\Game.exe
move /y "%file%.tmp" "%file%" >nul
)