windows - 如何使用 Windows 命令在文本文件中查找字符串并复制接下来的 5 个字符

标签 windows string batch-file cmd pattern-matching

我有input.txt:

asdfasfasdfa,abc12345,abc98591,abc13456,abc95934,abc53455  
safasdfasdfa,abc31212,abc55455,abc23124,abc54834,abc13689  
...

我需要output.txt:

12345  
98591  
13456  
95934  
53455  
31212  
55455  
23124  
54834  
13689  

所以我需要找到所有“abc”字符串并将接下来的 5 个字符(“abc”之后)复制到新文件中,并且每个数字必须位于新行中。

最佳答案

检查一下:

@echo OFF &SETLOCAL
FOR %%f IN (*.txt) DO (
    ECHO Processing %%f --^> %%~nf.txt.new
    (for /f "usebackq delims=" %%a in ("%%~f") do call:doit "%%a")>"%%~nf.txt.new"
)
GOTO :EOF

:doit
SET "line=%~1"
SET "first=true"
:loop
SET "token="
FOR /f "tokens=1*delims=," %%b IN ("%line%") DO (
    SET "token=%%b"
    SET "line=%%c"
)
SET "out=%token:~-5%"
IF NOT DEFINED first ECHO(%out%
SET "first="
IF DEFINED line GOTO :loop
GOTO :EOF

关于windows - 如何使用 Windows 命令在文本文件中查找字符串并复制接下来的 5 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17563153/

相关文章:

function - Windows 批处理脚本 - 反转函数参数

windows - 在bat中ctrl+c后更改当前目录

windows - 使用 PowerShell 将击键发送到特定窗口

windows - Windows 上的 Hadoop : Not a valid DFS filename

C 编程。将字符串 www.as.com 转换为 3www2as3com0

c++ - C++中字符串的下标有什么问题

batch-file - 批处理文件 - 从目录获取文件名并保存为变量

mysql - Windows cmd向MySQL插入汉字时出现的奇怪问题

c# - 我的 C# 应用程序如何测试用户是否具有 "Read"网络共享访问权限?

c++ - 我的代码无法将字符串转换为整数