批处理中用for指令从文件读取字符串时如何对字符串进行判断

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理中用for指令从文件读取字符串时如何对字符串进行判断相关的知识,希望对你有一定的参考价值。

方法1:
用for
/f
读取文本后,将整行内容赋值给变量
然后判断变量的第一个字符,是否是指定字符
@echo
off&
setlocal
Enabledelayedexpansion
for
/f
"delims="
%%1
in
(D:\abc.txt)do
(set
wind=%%1
if
"!wind:~0,1!"=="C"
echo
%%1)
pause>nul
方法2:
先用findstr
去查找文本中以"C"
打头的行
然后用for
/f
去解析
显示出来
@echo
off&
for
/f
%%1
in
('findstr
"\<C"
D:\abc.txt')do
echo
%%1
pause>nul
方法3:
直接用findstr
去查找
\<C
意思是以
"C"打头的行
@findstr
"\<C"
D:\abc.txt
pause>nul
参考技术A @echo
off&setlocal
Enabledelayedexpansion
for
/f
"delims="
%%i
in
(D:\abc.txt)
do
(
set
R=%%i
if
"!R:~0,1!"=="c"
echo
%%i
)
pause
这个判断时要区分大小写,不区分
if
加参数
/i
即为:
@echo
off&setlocal
Enabledelayedexpansion
for
/f
"delims="
%%i
in
(D:\abc.txt)
do
(
set
R=%%i
if
/i
"!R:~0,1!"=="c"
echo
%%i
)
pause
补充:
或显示以空格为分隔的所有单词中以‘c’开头的:
@echo
off&setlocal
Enabledelayedexpansion
for
/f
"delims="
%%i
in
(D:\abc.txt)
do
(
for
%%a
in
(%%i)
do
(
set
R=%%a
if
/i
"!R:~0,1!"=="c"
echo
%%a
))
pause

从文件中读取大(450000+ 字符)字符串

【中文标题】从文件中读取大(450000+ 字符)字符串【英文标题】:reading large (450000+ chars) strings from file 【发布时间】:2015-06-24 09:02:09 【问题描述】:

所以,我正在处理集成遗留系统。它生成一个大文本文件,在一个大字符串中打印指令。真正的大字符串。我们说的是 450 000 个字符或更多。

我需要把它分成几行,每条指令一个。每条指令由一个五位代码分隔,其中代码包含下一条指令中的字符数。

我的解决方案是编写一个小型 Java 程序,该程序使用缓冲读取器将文件读入字符串,随后将其拆分为行,并保存到新文件中。

对处理这个有什么建议吗?缓冲阅读器能否将其读入常规字符串?我做错了吗?

【问题讨论】:

BufferedReader 应该能够读取数据。 我会使用StringBuilder 实际上,如果性能成为问题,我会分块处理文件,而不是将其全部放入 StringStringBuilder 中,否则我会将其全部加载到 StringBuilder 中。跨度> 一个聪明的解决方案是使用输入和输出流,避免将整个文件读入内存。 @brso05 如何将文件拆分成块? 【参考方案1】:

是的。使用缓冲阅读器。

计算出指令的最大大小并创建该大小的 char[]。然后执行以下操作:

 reader.read(charArray, 0, 5);

 // parse the header

 reader.read(charArray, 0, lengthOfInstruction);

 String instruction = new String(charArray, 0, lengthOfInstruction);

 // do stuff with the instruction

你把它放在一个while循环中,当文件结束时终止。

这可能不是最高效的运行时,但它可能已经足够好并且足够简单以开始工作。

【讨论】:

我最终几乎完全做到了这一点。

以上是关于批处理中用for指令从文件读取字符串时如何对字符串进行判断的主要内容,如果未能解决你的问题,请参考以下文章

什么是APP-假如我要写一门app的语言

谁知道如何在python中用处理wav文件,并且对他的频谱进行分析的程序

如何使用 .NET 3.5 从 XML 文件中读取处理指令

如何逐字处理从 SQL 读取的字符串?

帮助编写一个c语言程序 微型命令解释程序

linux 中用 sed 指令 删除/添加 指定行首内容