2017-09-10 16 views
0

私は何時間も研究してきましたが、ファイル "hex.txt"(16進数で)を "dec.txt"に変換する方法がわかりません(10進数)。Batch、Python、VBSのファイル全体をHEXからDECに変換する

Hex.txtは、このような進値の束があります。

0x0000: 0a 00 00 08 00 06 61 75 74 68 6f 72 
0x000c: 00 09 41 6e 6f 6e 79 6d 6f 75 73 09 
0x0018: 00 06 62 6c 6f 63 6b 73 0a 00 00 01 
0x0024: 5a 09 00 03 70 6f 73 03 00 00 00 03 

をし、私はそれがバッチ、vbsファイルやPythonの10進に変換します。 何か助けていただければ幸いです。

+0

ようこそスタックオーバーフロー - あなたを持っていいです。 [良い質問をするにはどうすればいいですか?](https://stackoverflow.com/help/how-to-ask)と[最小限の完全かつ検証可能なサンプルを作成する方法](https:// stackoverflow。 com/help/mcve)を使用して、Stack Overflowsのコンテンツを可能な限り高いレベルに保ち、適切な答えを得る機会を増やします。今すぐ持っているコードをここに貼り付けてください。 – sebast26

+3

一時ファイルを作成できますか? 'Certutil'は簡単にhexからasciiに変換できます(それはXPの後にWindowsのすべてのバージョンにインストールされます)が、最初から行頭からコロンまですべてを削除する必要があります。 – SomethingDark

+0

sebast26私はここに1年以上笑っていた – Zigafide

答えて

3

バッチソリューション(なぜ他の言語のタイトルはありますがタグはありませんか?)

  • コマンドset /Aだから、あなたがそれぞれの値を処理するために、アドレス と値にコロンで行を分割するfor /fを必要とし、別の簡単なfor0x
  • で を前に付けた場合に小数に進値を変換します。設定と(符号ブロック)の内部値を使用して
  • delayedexpansion

> type Hex2Dec.cmd 
@Echo off & Setlocal EnableDelayedExpansion 
for /F "tokens=1* delims=:" %%A in (hex.txt) Do (
    Set /A DecAddr=%%A 
    Set "DecAddr=  !DecAddr!" 
    Set "Dec=" 
    For %%C in (%%B) do (
     Set /A Dec#=0x%%C 
     Set "Dec#= !Dec#!" 
     Set Dec=!Dec!!Dec#:~-4! 
    ) 
    Echo !DecAddr:~-5!: !Dec! 
) 

サンプル出力を必要とする:

> Hex2Dec.cmd 
    0: 10 0 0 8 0 6 97 117 116 104 111 114 
    12: 0 9 65 110 111 110 121 109 111 117 115 9 
    24: 0 6 98 108 111 99 107 115 10 0 0 1 
    36: 90 9 0 3 112 111 115 3 0 0 0 3 
+2

私はOPが実際にビン変換への16進数を望んでいると思います。あなたの答えは彼が要求したものに対して有効ですが。 – npocmaka

3

なぜ小数?小数点以下の数字にそれぞれの六角カップルをオンにするのは簡単ですが、バイナリデータのように見える示している16進数(と思う何が必要です)

@echo off 

set "source=.\data.txt" 

del /s /q /f .\temp.data 
for /f "usebackq tokens=2,3 delims=:x" %%a in ("%source%") do (
    rem (echo(%%a %%b)>>.\temp.data 
    (echo(%%a %%b)>>.\temp.data 
) 

certutil -decodehex -f temp.data converted 
のCertutilは、フォーマットしてもバイナリに進数をconverdでき

少し異なる:xを使用しているので、パージされる場所に1つの一時ファイルが必要です。

+1

バイナリ出力にはアドレスがバイナリデータとして含まれています。%% b〜temp.data – LotPings

関連する問題