如何将.ini文件中上一级的路径调用到bat命令字符串中?

如何将.ini文件中上一级的路径调用到bat命令字符串中?

我正在为现有的地图编辑器创建一个独立安装包,供我的游戏地图制作者同行使用。该地图编辑器名为 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
 )

相关内容