2017-05-31 3 views
1

テキストファイルから一行目を読み込むバッチスクリプトが必要です。そして、ある行が.part1の拡張子で終わっている場合は、次の行を読んでください。次の行に.part#extensionがない場合は、.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に意味

は私が見つかった場合はどの部分のファイルがあるかどう再度検索して、ファイルに次の行を印刷EOLで任意のPARTNを発見していない場合

part1..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:"\.part[0-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

ありがとう@lit。私は今、残りをすることができると信じています。何かが必要なら私はここに投稿します。 –

+0

もう少し助けが必要です。 "\ .part [0-9] *"の現在の行だけをチェックしたい場合はどうすればいいですか?見つかった場合は、何か別のアクションを実行してください。 –