Board logo

标题: [已结]一个根据文件%detail%栏行数 生成文件的问题 [打印本页]

作者: oozic     时间: 2010-6-2 15:38    标题: [已结]一个根据文件%detail%栏行数 生成文件的问题

如题
文件包含3行内容
%HEADER% 一行 永远置顶
%DETAIL% 有N行
现在的要求是按照%DETAIL%的行数N 程序自动把原文件拆分成N个文件。

这个文件中有2行%DETAIL% 那就生成2个文件 新文件名就是原文件名+N。
每个文件的内容就是
%HEADER%
和该行%DETAIL%的内容

请问这个能用什么办法实现?

[ Last edited by oozic on 2010-6-4 at 16:58 ]
附件 1: EDI_856_wisSOP_FlatFile_201005311500.rar (2010-6-2 15:38, 291 bytes,下载次数: 6)

作者: qinchun36     时间: 2010-6-2 19:33

@echo off
set "FILE=EDI_856_wisSOP_FlatFile_201005311500.txt"
set /p line1=<%FILE%
setlocal enabledelayedexpansion
set /a i=0
for /f "usebackq skip=1 delims=" %%s in ("%FILE%") do (
  set /a i+=1
  set NEW_FILE="%FILE:~0,-4%!i!.txt"
  > !NEW_FILE! echo %line1%
  >>!NEW_FILE! echo %%s
)
echo 完成。
pause>nul

作者: Evangel     时间: 2010-6-3 00:19

@echo off
rem Created by MakeBat.bat

setlocal enabledelayedexpansion
set /a i=0
set "file=EDI_856_wisSOP_FlatFile_201005311500.txt"
set name=!file:~0,-4!
for /f "delims=" %%a in (!file!) do (
if "!i!"=="0" (
set header=%%a
set /a i+=1
) else (
>>!name!!i!.txt echo !header!
>>!name!!i!.txt echo %%a
set /a i+=1
)
)
之前备份
作者: oozic     时间: 2010-6-3 09:39
谢谢 楼上2位
3楼 请问 不备份会出什么问题嘛?
作者: Evangel     时间: 2010-6-3 12:53


  Quote:
Originally posted by Evangel at 2010-6-3 12:19 AM:
[code]
@echo off
rem Created by MakeBat.bat

setlocal enabledelayedexpansion
set /a i=0
set "file=EDI_856_wisSOP_FlatFile_201005311500.txt"
set name=!file:~0,-4!
for /f "deli ...

不确定写的正确……还是备份的好……