我是新来的一批脚本和有问题。 我在想,如果有可能的需求来搜索文本文件,并采取指定的数据复制到一个新的txt文件?
就像如果我有50线与9位数字和一堆其他垃圾的,我不需要在他们之后,我可以说,“对于有1,2,3,4,5,6,7,8开头的任何行,或9 ...采取的第一个9个位数,并将它们复制到一个新的文件,文件中的所有行???”
我认为这将是比试图删除所有其他的东西更容易。 让我知道,如果你知道如何做到这一点的东西! 谢谢。
这里有一个什么行类似的例子:
123456789 @例子
而我只需要大约50本线抽取9位数字。
您可以使用FINDSTR过滤掉不以9位数字开头的所有行。 然后FOR / F可以逐行读取结果,线。 变量被设置,并且一个子操作只是保留了第一9位数字。
@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
@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
你没有specfy做什么,如果行是全数字,但少于9个字符。 我选择了报告线。
希望这有助于完成工作:
@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
)到一个文件中,例如像
echo %%e >> output.txt