• ベストアンサー

バッチでファイルを分割する

例えば、100行あるファイルを10行ずつに分割し、 分割後10個のファイルを作成したいと考えていますが、 なかなか思うように行きません。 是非、お知恵を拝借でできると大変助かります。 FOR /F %%i in (D:\\\\file.txt) do ( echo %%i >> outfile.txt CALL :COUNT ) exit /b :COUNT SET /a I=I+1 echo [%I%] です。 IF %I%==10 ( set I=0 ) exit /b

みんなが選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8467/18126)
回答No.1

ファイル分割は難しい。 しかし,例えばこんな感じでvbsファイルを作ってcscript で実行させると簡単です。 ----------test.bat-------------始まり @echo off echo set FSO = WScript.CreateObject("Scripting.FileSystemObject") >tmp.vbs echo arg = WScript.Arguments(0) >>tmp.vbs echo set fin = FSO.OpenTextFile(arg, 1) >>tmp.vbs echo fbn = FSO.GetBaseName(arg) >>tmp.vbs echo fen = FSO.GetExtensionName(arg) >>tmp.vbs echo nf=0 >>tmp.vbs echo set fout = FSO.OpenTextFile(fbn ^& nf ^& "." ^& fen, 2, true) >>tmp.vbs echo nl=0 >>tmp.vbs echo Do While Not fin.AtEndOfStream >>tmp.vbs echo fout.WriteLine fin.ReadLine >>tmp.vbs echo nl=nl+1 >>tmp.vbs echo if nl^>9 then >>tmp.vbs echo fout.Close >>tmp.vbs echo nf=nf+1 >>tmp.vbs echo if nf^>9 then exit do >>tmp.vbs echo set fout = FSO.OpenTextFile(fbn ^& nf ^& "." ^& fen, 2, true) >>tmp.vbs echo nl=0 >>tmp.vbs echo end if >>tmp.vbs echo Loop >>tmp.vbs cscript //nologo tmp.vbs makefilex del tmp.vbs ----------test.bat--------------終わり

linux09
質問者

お礼

ありがとうございます。 参考にさせて頂きます。

関連するQ&A