2016-09-28 22 views
-1

XMLファイル内のタグ間の値を読み込み、潜在的に編集する必要があります。私は現在、処理する唯一の方法としてCMDバッチファイルを使用することに限定されています(将来的には電源シェルに移行できるかもしれません)。 "Sample File.xml"は常に同じレイアウトにあり、完全なファイルは以下に示されています。CMDバッチを使用してXML値を解析

注目タグは<MountPoint>\\.\PHYSICALDRIVE6</MountPoint>です。私は物理ドライブ番号(この例では6です)を読み、その値に応じて編集する必要があります。このため、バッチの読み込みと編集のコンポーネントを別々にしておきたいと思います。私のバッチ技能はそれまでではないと評価され、私は近くに来ていません。

Mounting in progress, wait... 
<MIPResponse Command="VIEW" Version="1.0"> 
<Drive> 
    <IsActive>F</IsActive> 
    <DeviceType>PhysicalDrive</DeviceType> 
    <PartitionType>Physical</PartitionType> 
    <MountPoint>\\.\PHYSICALDRIVE6</MountPoint> 
    <Capacity>80026361344</Capacity> 
    <CapacityString>74.53 GB</CapacityString> 
<Partition> 
    <IsActive>T</IsActive> 
    <PartitionType>NTFS/OS2 HPFS/exFAT</PartitionType> 
    <MountPoint></MountPoint> 
    <Location>1048576</Location> 
    <Capacity>104857600</Capacity> 
    <CapacityString>100.0 MB</CapacityString> 
</Partition> 
<Partition> 
    <IsActive>F</IsActive> 
    <PartitionType>NTFS/OS2 HPFS/exFAT</PartitionType> 
    <MountPoint></MountPoint> 
    <Location>105906176</Location> 
    <Capacity>79919316992</Capacity> 
    <CapacityString>74.43 GB</CapacityString> 
</Partition> 
</Drive> 
</MIPResponse> 
+0

([特定のXMLタグの値を抽出するバッチファイル]の可能性のある重複http://stackoverflow.com/questions/8217765/a-batch-file-to-extract-the -value-of-a-specific-xml-tag) – geisterfurz007

+4

CloseVote:質問は、問題を解決するための最小限の試みを示す必要があります。あなたが何をしようとしたのか、なぜそれがうまくいかなかったのか、そしてどのように機能するのかを教えてください。少なくともあなたは質問する前にgoogleにできるはずです – jeb

+0

XMLファイルを普通のプレーンテキストファイルとして扱いません。ネイティブでXMLデータの解析と操作が可能な言語を使用してください。 – aschipfl

答えて

0
ECHO Matching in file... 
setlocal enableextensions disabledelayedexpansion 
set "Result=" 
for /f "tokens=3 delims=<>" %%a in (
    'find /i "<MountPoint>\\.\PHYSICALDRIVE" ^< "The Sample File.xml"' 
) do set "Result=%%a" 
set Result=%Result:~-1% 
ECHO Found Value: PHYSICALDRIVE%Result% 

ECHO Updating the other file... 
powershell -Command "(gc 'The Other File.xml') -replace '"PHYSICALDRIVE[0-9]{1,2}"', '"PHYSICALDRIVE%Result%"' | Out-File -Encoding "ASCII" 'The Other File.xml'" 
関連する問題