使用批处理文件或excel查找文本文件中特定文本之前的数字

使用批处理文件或excel查找文本文件中特定文本之前的数字,excel,batch-file,Excel,Batch File,谢谢你的回复。无论如何,我已经编辑了我的问题。你们帮了我很大的忙,几乎达到了我想要的结果。但是,某些文本区分大小写,后面会有随机数。以下是编辑后的版本 希望创建一个批处理文件来查找文本文件中某个文本之前的数字。 可以使用excel作为替代方案,只要获取值即可 示例:下面是testing.txt文件的内容 2021 12345 hello-222 qwerty 2022 23456 hello-321 asdfg 2033 34567 hello-8473 zxcvb 预期结果 12345 23

谢谢你的回复。无论如何,我已经编辑了我的问题。你们帮了我很大的忙,几乎达到了我想要的结果。但是,某些文本区分大小写,后面会有随机数。以下是编辑后的版本

希望创建一个批处理文件来查找文本文件中某个文本之前的数字。 可以使用excel作为替代方案,只要获取值即可

示例:下面是testing.txt文件的内容

2021 12345 hello-222 qwerty
2022 23456 hello-321 asdfg
2033 34567 hello-8473 zxcvb
预期结果

12345
23456
34567
应该提取这些数据。见/?从文档提示中


这假设默认的空格分隔符是一个容易混淆的术语:特定文本之前或之后的数字?特定文本是如何给出的?是否区分大小写

下面的批处理文件查找放置在文本文件中特定文本之前的标记,区分大小写

@echo off
setlocal EnableDelayedExpansion

set certainText=hello-world
for /F "delims=" %%a in (testing.txt) do (
   set "previous="
   for %%b in (%%a) do (
      if "%%b" equ "%certainText%" echo !previous!
      set "previous=%%b"
   )
)

某些文本区分大小写。类似于HELLO-123、HELLO-476、HELLO-8674。在此之前,我仍将获得值。谢谢,这是区分大小写的解决方案。如果希望不区分大小写,只需将If与/i参数一起使用。
@echo off
setlocal EnableDelayedExpansion

set certainText=hello-world
for /F "delims=" %%a in (testing.txt) do (
   set "previous="
   for %%b in (%%a) do (
      if "%%b" equ "%certainText%" echo !previous!
      set "previous=%%b"
   )
)