批处理 - 将文本文件中的行从整数转换为ascii

时间:2017-06-28 16:25:27

标签: file batch-file text ascii data-conversion

我有一个只包含一行的文件(file.txt)(我将所有行连接在一起)。 所以我有以下几行:

85;048;048;057;048;055; 045 ;84;048;048;057;055;055

我希望file.txt包含由

分隔的每个数字的ASCII转换
;

因此file.txt应该包含:

U00907 - T00977

我尝试过循环,但它确实不起作用:

set content=
for /f "delims=;" %%i in (file.txt) do (
  cmd /c exit %%i
  Set "char=!=ExitCodeAscii!"
  set content=%content% %char%
)

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

一些次要的逻辑失败:使用delims=;时,您只使用第一个令牌85而忽略其余的令牌。您需要一个循环来获取file.txt的每一行和另一个循环来处理每行中的标记(一个简单的for没有/f)。你需要delayed expansion

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (file.txt) do (
  set content=
  for %%a in (%%i) do (
    cmd /c exit %%a
    Set "char=!=ExitCodeAscii!"
    set content=!content!!char!
  )
  echo !content:-= - !
)

如果您确定,file.txt只包含一行(或者您不关心其余部分),则可以使用for /f替换第一个<file.txt set /p string=循环并处理与 for %%a in (%string%) do (