2015-07-13 51 views
0

我有一個包含多個ImageX文件(* .wim)的文件夾。我可以遍歷這些並從中選擇一個與下面的批處理文件:使用ImageX信息的Windows批處理文件

@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的有一個選項,「/信息」,顯示有關以下列格式的圖像的各種元數據:

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> 

我怎樣才能使用<NAME>標籤在這個信息從ImageX的,而不是文件名腳本中的for循環?

這幾乎this one同樣的問題,但我找不到它的這一特定問題的妥善解決(其他,我可以使用imagex /info myfile.wim | find "<NAME>"但包括前導空格以及實際的XML標記)

回答

1

使用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 here 
+0

太棒了。謝謝! :) – GTHvidsten