首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ImageX信息的Windows批处理文件

使用ImageX信息的Windows批处理文件
EN

Stack Overflow用户
提问于 2015-07-13 10:39:24
回答 1查看 276关注 0票数 0

我有一个包含多个ImageX文件(*.wim)的文件夹。我可以循环遍历这些文件,并使用以下批处理文件选择其中之一:

代码语言:javascript
复制
@echo off
setlocal enabledelayedexpansion
for %%a in (*.wim) do (
    set /a gt_i+=1
    echo !gt_i! - %%~nxa
    set gt_files[!gt_i!]=%%~fa
)
set /p m0="Select file: "
REM Do imagex applying of selected image here

这个很好,但是我想要比文件名更漂亮的东西。

ImageX有一个选项"/info",它以下列格式显示有关图像的各种元数据:

代码语言:javascript
复制
C:\>imagex /info myfile.wim 1

ImageX Tool for Windows
Copyright (C) Microsoft Corp. All rights reserved.
Version: 6.1.7600.16385

Image Information:
------------------
<IMAGE INDEX="1">
  <DIRCOUNT>10817</DIRCOUNT>
  <FILECOUNT>57345</FILECOUNT>
  <TOTALBYTES>10790852647</TOTALBYTES>
  <HARDLINKBYTES>3603810948</HARDLINKBYTES>
  <CREATIONTIME>
    <HIGHPART>0x01CF15CB</HIGHPART>
    <LOWPART>0xF1871990</LOWPART>
  </CREATIONTIME>
  <LASTMODIFICATIONTIME>
    <HIGHPART>0x01CF3C5B</HIGHPART>
    <LOWPART>0x32F96B0C</LOWPART>
  </LASTMODIFICATIONTIME>
  <WINDOWS>
    <ARCH>0</ARCH>
    <PRODUCTNAME>Microsoft® Windows® Operating System</PRODUCTNAME>
    <EDITIONID>Embedded</EDITIONID>
    <INSTALLATIONTYPE>Embedded</INSTALLATIONTYPE>
    <HAL>acpiapic</HAL>
    <PRODUCTTYPE>WinNT</PRODUCTTYPE>
    <PRODUCTSUITE>Terminal Server</PRODUCTSUITE>
    <LANGUAGES>
      <LANGUAGE>en-US</LANGUAGE>
      <DEFAULT>en-US</DEFAULT>
    </LANGUAGES>
    <VERSION>
      <MAJOR>6</MAJOR>
      <MINOR>1</MINOR>
      <BUILD>7601</BUILD>
      <SPBUILD>17965</SPBUILD>
      <SPLEVEL>1</SPLEVEL>
    </VERSION>
    <SYSTEMROOT>WINDOWS</SYSTEMROOT>
  </WINDOWS>
  <NAME>My custom image name set during creation</NAME>
</IMAGE>

如何使用来自imagex的信息中的<NAME>标记而不是脚本中的for循环中的文件名?

这几乎是与this one相同的问题,但我无法找到适当的解决方案来解决这个特定的问题(除了可以使用imagex /info myfile.wim | find "<NAME>"之外,还包括前面的空格和实际的XML标记)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-13 11:28:15

使用for /f

代码语言:javascript
复制
@echo off
setlocal enabledelayedexpansion
for %%a in (*.wim) do (
    set /a gt_i+=1
    for /f "delims=<> tokens=3" %%b in ('imagex /info %%~nxa ^| find "<NAME>"') do set name=%%b
    echo !gt_i! - %%~nxa - !name!
    set gt_files[!gt_i!]=%%~fa
)
set /p m0="Select file: "
REM Do imagex applying of selected image here
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31381160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档