我试图从一个用六个行块写的txt文件中读取。
SERVICE_NAME: 11178688
DISPLAY_NAME: 11178688
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
SERVICE_NAME: 11572138
DISPLAY_NAME: 11572138
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
有没有办法可以使用cmd扫描这些文件并读取每个块的第一行,从中获取整数并将其写入新文件?
答案 0 :(得分:0)
你可以,虽然我建议一旦事情变得更复杂,你应该切换到另一种语言。例如,PowerShell在文本解析方面非常强大,尽管它具有基于对象的特性。
我假设你想要SERVICE_NAME
部分,如果没有,只需调整下面的相关字符串。
首先,我们将输入减少到只需要的行:
findstr SERVICE_NAME < foo.txt
然后我们迭代这些,并保留数字:
setlocal enabledelayedexpansion
for /f "tokens=2" %%A in ('findstr SERVICE_NAME ^< foo.txt') do (
set "Number=%%A"
echo Integer: !Number!
)
要将其写入新文件,只需重定向输出:
@echo off
(for /f "tokens=2" %%A in ('findstr SERVICE_NAME ^< foo.txt') do (
echo %%A
)) > bar.txt