搜索文本文件并仅向文本文件发送大于某个绝对值的数字



我有一个我正在搜索的文本文件,看起来像:

KSDF 0 0 -4

as7d:s:asf 0 0 -4

kc:s:cd3 0 0 -2

asdk:s:s 0 0 6

LASD:S:DD 0 0

目前,我的具体问题是在搜索文件以查找第一个和第4个令牌时。如果第四令牌是一个数字,则所有内容都可以很好地发送,但是当第四令牌为空白时(如我的示例中的第五行),代码根本不起作用。您可以看到我想在%%B变量中找到空白时返回三个星号。

注意:感谢用户,lotpings,我使用findstr命令仅从包含子字符串:S:开始的字符串开始,以澄清为什么会在那里。(即我的示例中的第1行不会被抓住。)

我正在使用:

setlocal enabledelayedexpansion
For /F "tokens=1,4" %%A in ('Findstr /b /r /c:"[^ ]*:S:" print.log') do (
set space="%%B"
if !space!=="" echo %%A ^*^*^* >> new.txt
)
exit
@ECHO OFF
SETLOCAL EnableExtensions EnableDelayedExpansion
>new.txt (
  For /F "tokens=1,4" %%A in ('Findstr /b /r /c:"[^ ]*:S:" print.log') do (
    set "space=%%B"
    if "!space!"=="" (echo %%A ^*^*^*) else (echo %%A %%B)
  )
)
type new.txt
pause

最新更新