我有一个包含多个ImageX文件(*.wim)的文件夹。我可以循环遍历这些文件,并使用以下批处理文件选择其中之一:
@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",它以下列格式显示有关图像的各种元数据:
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标记)。
发布于 2015-07-13 11:28:15
使用for /f
@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 herehttps://stackoverflow.com/questions/31381160
复制相似问题