在电脑上管理 XGameSave 数据 (xgamesaveutil.exe)

使用此工具管理电脑上的 XGameSave 数据。 此工具提供以下子命令和函数。

注意

如果需要在控制台上管理 XGameSave 数据,则必须使用 xbstorage.exe 命令行工具(NDA 主题)要求授权

命令

说明

reset针对指定的 PFN 和 SCID 删除所有本地数据。
import将数据从指定的 XML 文件导入到 XGameSave 存储空间
export将数据从 XGameSave 存储空间导出到指定的 XML 文件
delete从 XGameSave 存储空间删除数据
generate生成虚拟数据并将其保存到指定的 XML 文件中

xgamesaveutil reset

xgamesaveutil reset [/pfn:<PFN>] [/scid:<SCID>] [/context:<infile>]

针对指定的 PFN 和 SCID 删除所有本地数据。

有两种方式可指定要删除的数据的位置:

  • 如果使用 /context 参数,并且 <infile> 指定的文件名具有正确填充的 ContextDescription 部分,则该文件将用于指定目标 PFN 和 SCID。

  • 该 PFN 和 SCID 还可以通过命令行参数部分或完全指定,这些参数优先于输入文件中指定的 PFN 和 SCID 对应元素。

选项 描述
/context:<infile> 使用指定文件指定应用 PFN 和 SCID。
/pfn:<PFN> 指定从中删除数据的应用的包系列名称 (PFN)。 该应用必须已经安装。
/scid:<SCID> 指定服务配置标识符 (SCID)。 这来自你的 Xbox 服务配置。

使用示例如下。

xgamesaveutil reset /context:target.xml
xgamesaveutil reset /pfn:MyGame_xxxxxx /scid:2AAEB34B-DAB2-4879-B625-D970069C1D22

xgamesaveutil import

xgamesaveutil import <filename> [/pfn:<PFN>] [/scid:<SCID>] [/replace]

filename 中的指定数据导入到存储空间。 此 XML 文件包含这些数据。 有关示例,请参阅本主题中的 xbstorage generate。 关于该文件的 XML 格式的详细信息,请参阅本主题中的导入和导出文件格式

有两种方法可以指定从何处导入 XGameSave 数据:

  • 如果使用 /context 参数,并且 <filename> 指定的文件名具有正确填充的 ContextDescription 部分,则该文件将用于指定目标 PFN 和 SCID。

  • 该 PFN 和 SCID 还可以通过命令行参数部分或完全指定,这些参数优先于输入文件中指定的 PFN 和 SCID 对应元素。

选项 描述
/pfn:<PFN> 指定从中删除数据的应用的包系列名称 (PFN)。 该应用必须已经安装。
/scid:<SCID> 指定服务配置标识符 (SCID)。 这来自你的 Xbox 服务配置。
/replace 在执行导入前先删除所有容器。
使用示例如下。 ```cmd xgamesaveutil import mydata.xml xgamesaveutil import mydata.xml /replace xgamesaveutil import mydata.xml /pfn:MyGame_xxxxxx /scid:2AAEB34B-DAB2-4879-B625-D970069C1D22 ```

导入到指定 XGameSave 存储空间之前,系统将尝试使用与正在运行的应用程序获取空间时所用的相同逻辑来与云同步。

如果具有相同主要服务配置标识符 (SCID) 的应用程序正在运行,此操作可能导致争用,并且 XGameSave 存储空间的内容会处于不确定的状态。

如果未指定 /replace,则在写入输入文件中指定的 blob 之前将清除在输入文件中指定的容器。 XGameSave 存储空间中未在输入文件中指定的容器将保持不变。

xgamesaveutil export

xgamesaveutil export <outfile> [/pfn:<PFN>] [/scid:<SCID>] [/context:<infile>]

将数据从连接存储空间导出到 outfile 指定的文件。 此 XML 文件包含这些数据。 有关生成一个示例的详细信息,请参阅本主题中的 xbstorage generate。 关于该文件的 XML 格式的详细信息,请参阅本主题中的导入和导出文件格式

可通过两种方法指定从何处导出 XGameSave 数据:

  • 如果使用 /context 参数,并且 <infile> 指定的文件名具有正确填充的 ContextDescription 部分,则该文件将用于指定目标 PFN 和 SCID。

  • 该 PFN 和 SCID 还可以通过命令行参数部分或完全指定,这些参数优先于输入文件中指定的 PFN 和 SCID 对应元素。

选项 描述
/pfn:<PFN> 指定从中删除数据的应用的包系列名称 (PFN)。 该应用必须已经安装。
/scid:<SCID> 指定服务配置标识符 (SCID)。 这来自你的 Xbox 服务配置。
使用示例如下。 ```cmd xgamesaveutil export exporteddata.xml /context:target.xml xgamesaveutil export exporteddata.xml /pfn:MyGame_xxxxxx /scid:2AAEB34B-DAB2-4879-B625-D970069C1D22 ``` 导出指定 XGameSave 存储空间之前,系统将尝试使用与正在运行的应用程序获取连接存储空间时所用的相同逻辑来与云同步。

如果具有相同主 SCID 的应用正在运行,此操作可能导致争用,并且 XGameSave 存储空间的内容会处于不确定的状态。

xgamesaveutil delete

xgamesaveutil delete [/pfn:<PFN>] [/scid:<SCID>] [/context:<infile>]

从 XGameSave 存储空间中删除所有数据。

有两种方法可以指定从何处删除 XGameSave 数据:

  • 如果使用 /context 参数,并且 <infile> 指定的文件名具有正确填充的 ContextDescription 部分,则该文件将用于指定目标 PFN 和 SCID。

  • 该 PFN 和 SCID 还可以通过命令行参数部分或完全指定,这些参数优先于输入文件中指定的 PFN 和 SCID 对应元素。

选项 描述
/pfn:<PFN> 指定从中删除数据的应用的包系列名称 (PFN)。 该应用必须已经安装。
/scid:<SCID> 指定服务配置标识符 (SCID)。 这来自你的 Xbox 服务配置。

使用示例如下。

xgamesaveutil delete /context:target.xml
xgamesaveutil delete /pfn:MyGame_xxxxxx /scid:2AAEB34B-DAB2-4879-B625-D970069C1D22 

删除指定 XGameSave 存储空间之前,系统将尝试使用与正在运行的应用程序获取连接存储空间时所用的相同逻辑来与云同步。

如果具有相同主 SCID 的应用正在运行,此操作可能导致争用,并且存储空间的内容会处于不确定的状态。

xgamesaveutil generate

xgamesaveutil generate <filename> [/containers:<n>] [/blobs:<n>] [/blobsize:<n>]

生成虚拟数据并将它保存到由 <filename> 指定的文件中。 关于该文件的 XML 格式的详细信息,请参阅本主题中的导入和导出文件格式

SCID 将设置为 00000000-0000-0000-0000-000000000000。 要更改这些值,请在它生成之后直接编辑该文件。

选项 描述
/containers:<n> 指定要生成多少容器。 默认值为 2。
/blobs:<n> 指定每个容器要生成多少个 blob。 默认值为 3。
/blobsize:<n> 指定每个 blob 包含多少字节。 默认值为 1024。

使用示例如下。

xgamesaveutil generate dummydata.xml
xgamesaveutil generate dummydata.xml /containers:4
xgamesaveutil generate dummydata.xml /blobs:10
xgamesaveutil generate dummydata.xml /containers:4 /blobs:10
xgamesaveutil generate dummydata.xml /containers:4 /blobs:10 /blobsize:512

字节数据是一种简单的升序系列。 例如,5 字节 blob 可能包含以下字节:00 01 02 03 04。

要指定每位用户的 XGameSave 存储空间,请将 XML 文件中的 Account 节点更改为类似下面的示例。

<Account msa="user@example.com"/>  

导入和导出文件格式

importexportgenerate 命令一起使用的 XML 文件具有以下示例所示的格式。

  <?xml version="1.0" encoding="UTF-8"?> 
  <XbConnectedStorageSpace> 
    <ContextDescription> 
      <Account msa="user@example.com"/>
      <Title scid="00000000-0000-0000-0000-000000000000" /> 
    </ContextDescription> 
    <Data> 
      <Containers> 
        <Container name="Container1"> 
          <Blobs> 
            <Blob name="Blob1"> 
              <![CDATA[... ] ]> 
            </Blob> 
            ... 
            <Blob name="BlobN"> 
              <![CDATA[... ] ]> 
            </Blob> 
          </Blobs>
        </Container> 
        ... 
        <Container name="ContainerN"> 
        ... 
        </Container> 
      </Containers> 
    </Data> 
  </XbConnectedStorageSpace>  

此 XML 文件中数据的格式与平台上的格式并不完全相同。 该格式可能在以后发生更改,因此应将这些文件视为具有中间格式或实用工具格式,而不是存档格式。

ContextDescription 节点是可选的。 如果要为某一用户设置 XGameSave 存储空间,可以使用 <Account msa="user@example.com"/> 而不是 <Account machine="true"/>。 否则,可以在命令行上为导入指定上下文。

应该按要为其生成文件的游戏或应用为 Blob 和容器提供相应的名称。

每个 blob 的内容都应该是包含在 CDATA 标签中的字符串,该字符串通过调用包含标志 CRYPT_STRING_BASE64CryptBinaryToStringW 生成,其以原始字节队列的形式为该 blob 提供数据。 反过来,blob 数据可以也通过调用 CryptStringToBinary 以提供之前加密的字符串来重新转换为原来的形式。 有关使用这两个函数的示例,请参阅 CryptBinaryToString 返回无效字节

另请参阅

XGameSave 概述XGameSaveFiles 概述
管理控制台上的 XGameSave 存储(NDA 主题)要求授权