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

Batch - Convert a line in a text file from integer to ascii

我有一个文件 (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%
)

有什么想法吗?

一些小的逻辑错误:使用 delims=; 你只需要第一个标记 85 而忽略其余的。您需要一个循环来获取 file.txt 的每一行,并需要另一个循环来处理每一行中的标记(一个简单的 for 没有 /f)。而你需要 .

@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 (