2017-05-31 162 views
1

我需要批处理脚本从文本文件中读取第一行。然后,如果某行以.part1扩展名结尾,请阅读下一行。如果下一行最后没有.part#扩展名,那么使用.part文件做一些操作。所以基本上这些将是以.part1,.part2结尾的URL,然后我需要下载这些.part文件通过cmd提取,并且一些文件没有.part扩展名。我需要批处理脚本从文本文件中读取第一行

例,

new.txt 

http://abcd.com/abcd.part1 
http://abcd.com/abcd.part2 
http://abcd.com/abcd.part3 
http://abcd.com/xyz.zip 

所以我需要下载abcd.part1,abcd.part2和abcd.part3一次,然后提取并删除部分文件。

这就是我想要做的

在此之后,我无法继续。如果有人可以给出一个代码来打印所有的零件文件,我可以完成下载和解压缩。

我的意思是在一个有序part1..partn我需要打印part1..partn

如果没有找到在EOL任何PARTN然后打印下一行到文件,然后如果一旦发现有任何部分文件再次搜索将所有part1..partn打印到文件。

@echo off 
cd /D %SCP_HOME% 
setlocal enableextensions 
set count=0 
set i=0 
for %%x in (*) do set /a count+=1 
echo %count% 
for /r %%f in (*) do (
    echo %%~nxf 
    head 1 %%~nxf 
    more +1 %%~nxf > %count%-1%%~nxf 
) 
endlocal 
+2

命令'FINDSTR /ERC:"\.[[-9] *“ lit

+0

HI @lit但我想逐行列出,以便我可以下载这些零件文件并提取它们。这将消耗更少的内存。解压缩这些文件后,我需要将它们压缩,上传并删除所有内容。 –

回答

1

这将遍历行末尾包含“part *”的行。这会让你开始吗?

SETLOCAL ENABLEDELAYEDEXPANSION 
SET "THE_FILE=new.txt" 

FOR /F "usebackq tokens=*" %%a IN (`TYPE "%THE_FILE%"`) DO (
    ECHO %%~a | FINDSTR /RC:"http://.*\.part[0-9]*" >NUL 
    IF !ERRORLEVEL! EQU 0 (
     ECHO This line matches 
     ECHO %%~a 
    ) ELSE (
     ECHO This line does not match 
     ECHO %%~a 
    ) 
) 
+0

我相信这些文件是.part1.rar或.part1.zip像这样 –

+0

Thanks @lit。我相信我现在可以完成剩下的工作。如果需要什么,我会在这里发布。 –

+0

顺便再提一个所需的帮助。如果我只想检查“\ .part [0-9] *”的当前行怎么办?如果找到,然后做其他事情做另一个行动 –

相关问题