我有一个只包含一行的文件(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%
)
有什么想法吗?
答案 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 (