首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批脚本:搜索文件、解压缩编号并复制到新文件中。

批脚本:搜索文件、解压缩编号并复制到新文件中。
EN

Stack Overflow用户
提问于 2014-07-18 11:34:28
回答 3查看 1.8K关注 0票数 1

我刚开始批量编写脚本,我有一个问题。我想知道是否可以根据需求搜索.txt文件,并获取指定的数据并复制到新的.txt文件中?

比如,如果我有50行有9位数字的行,还有一堆我不需要的废话,我能说:“对于任何以1,2,3,4,5,6,7,8开头的行,还是9...take前9位数,并将它们复制到一个新文件中,用于文件中的所有行?”

我觉得这比尝试删除其他东西更容易。如果你知道怎么做,请告诉我!谢谢。

下面是一行内容的示例:

123456789@示例

我只需要从大约50行中提取出9位数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-18 21:26:06

您可以使用FINDSTR筛选出不以9位开始的所有行。然后对于/F可以逐行读取结果。设置变量,子字符串操作只保留前9位数字。

代码语言:javascript
复制
@echo off
setlocal enableDelayedExpansion
(
  for /f %%A in (
    'findstr "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" yourFile.txt'
  ) do (
    set "ln=%%A"
    echo !ln:~0,9!
  )
)>newFile.txt
票数 1
EN

Stack Overflow用户

发布于 2014-07-18 14:13:35

代码语言:javascript
复制
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
(
FOR /f "delims=" %%a IN (q24824079.txt) DO (
 SET "line=%%a"
 REM set DIGITS to the first 9 characters of LINE
 SET "digits=9!line:~0,9!"
 FOR /L %%z IN (0,1,9) DO SET "digits=!digits:%%z=!"
 IF NOT DEFINED digits ECHO(!line:~0,9!
)
)>newfile.txt

GOTO :EOF

我使用一个名为q24824079.txt的文件进行测试,该文件包含数据。生产newfile.txt

如果行为全位,但少于9个字符,则您没有猜测该怎么办。我选择了报告这句话。

票数 1
EN

Stack Overflow用户

发布于 2014-07-18 13:02:12

希望这有助于完成任务:

代码语言:javascript
复制
@echo off
setlocal enabledelayedexpansion
for /f %%e in (emails.txt) do (
    echo Email: %%e
    for /f "delims=@ tokens=1" %%b in ("%%e") do (
        set BEGIN=%%b
        echo Name: !BEGIN!
        set FIRST=!BEGIN:~0,1!
        echo First char: !FIRST!
        set /a NUMERIC=!FIRST!+0
        echo Converted to number: !NUMERIC!
        if !FIRST!==!NUMERIC! echo Yippieh!
        echo.
    )
)

代替echo Yippieh!,将电子邮件(%%e)附加到文件中,例如

代码语言:javascript
复制
echo %%e >> output.txt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24824079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档