批处理文件从文本文件中读取“N”个字符

时间:2011-12-21 14:40:30

标签: windows batch-file character

我在网上搜索了这个,发现了很多代码,用于从文本中检索整行,或者用另一个替换文本,但不是我想要的。

使用带有标记的For循环将返回以空格分隔的集合(单词)。

我想从该行中只拉几个字符。

例如:12345qwerty67890

如果在文本文件中打开,我只想提取' 12345'并将其分配给变量。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

设置HELP SET并尝试以下操作让您入门

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (sample.txt) do (
  set line=%%a
  set chars=!line:~0,5!
  echo !chars! --- !line!
)

答案 1 :(得分:2)

在命令提示符下,执行help set。在那里,您将找到有关set命令的更多信息,而不是您想知道的信息。你感兴趣的部分说:

May also specify substrings for an expansion.

    %PATH:~10,5%

would expand the PATH environment variable, and then use only the 5
characters that begin at the 11th (offset 10) character of the expanded
result.  If the length is not specified, then it defaults to the
remainder of the variable value.  If either number (offset or length) is
negative, then the number used is the length of the environment variable
value added to the offset or length specified.

当然,为了使用for循环变量的那种东西,你需要首先了解在Windows NT批处理文件中扩展变量的非常特殊的方式。如果您遇到问题,请告诉我,我可以添加更多信息。