You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell修改游戏XML配置中的InputMapping元素值

问题:用PowerShell修改游戏XML配置中的按键映射值

我想要用PowerShell为游戏设置按键映射,游戏用XML存储配置,需要修改<InputMapping>Service2</InputMapping>元素的数值。

XML内容示例:

<JoystickButtons>
    <ButtonName>Service 2</ButtonName>
    <InputMapping>Service2</InputMapping>
</JoystickButtons>

目前已编写的脚本:

[xml]$gameInfo = Get-Content $game.fullname
$xml = New-Object XML
$xml.Load("C:\PATH\$game")
$Buttons = $xml.SelectNodes("/JoystickButtons")

请问接下来该如何操作?


解决方案

步骤1:简化XML加载逻辑

你当前的脚本重复加载了XML文件(既用[xml]$gameInfo又用$xml.Load()),保留其中一种方式即可,推荐更简洁的[xml]类型直接加载:

# 替换原有加载代码,二选一即可
[xml]$xml = Get-Content $game.fullname
# 或者用New-Object方式:
# $xml = New-Object XML
# $xml.Load($game.fullname)

步骤2:修改InputMapping的值

通过$Buttons已经获取到<JoystickButtons>节点,直接访问其下的<InputMapping>子节点修改内容:

# 如果只有一个<JoystickButtons>节点,直接赋值
$Buttons.InputMapping = "你的新按键映射值"

# 如果存在多个<JoystickButtons>节点,循环遍历并精准修改目标项
foreach ($btn in $Buttons) {
    # 仅修改ButtonName为"Service 2"的节点
    if ($btn.ButtonName -eq "Service 2") {
        $btn.InputMapping = "你的新按键映射值"
    }
}

步骤3:保存修改后的XML文件

最后将修改后的配置保存回原文件(或指定新路径做备份):

# 保存到原文件
$xml.Save($game.fullname)

# 可选:保存到新路径避免覆盖原文件
# $xml.Save("C:\PATH\modified_game_config.xml")

完整示例脚本

整合后的完整可运行脚本:

# 加载XML配置文件
[xml]$xml = Get-Content $game.fullname

# 获取所有JoystickButtons节点
$Buttons = $xml.SelectNodes("/JoystickButtons")

# 遍历修改目标节点
foreach ($btn in $Buttons) {
    if ($btn.ButtonName -eq "Service 2") {
        $btn.InputMapping = "NewServiceMapping" # 替换为你需要的新值
    }
}

# 保存修改
$xml.Save($game.fullname)

内容的提问来源于stack exchange,提问作者Blake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 23:28:11