2014-03-30 2 views
0

2 개의 템플릿 텍스트 파일에서 여러 개의 텍스트 파일을 만들려고합니다. 그러나 새로 생성 된 각 파일에는 Excel 행에서 가져온 텍스트의 새 줄을 추가해야합니다. 예를 들어배치 파일을 만들려면 서로 다른 텍스트 파일을 두 개의 서로 다른 텍스트 파일에서 가져옵니다.

:

template1를 텍스트 파일 내용

Line1 
Line2 

Line 3 

template2 텍스트 파일 내용

Line4 

Line5 

및 Excel 파일은 여러 행, 다른 텍스트 각, 예를 들면있다

Row1text 
Row2text 
Row3text 

그래서

그래서 결과는 다음과

같은 것, 엑셀 행 텍스트에서 끌어와 텍스트 템플릿 파일을 기반으로 새로 생성 된 텍스트 파일에 추가되어 무엇을해야하는지

GeneratedText1.txt

Line1 
Line2 

Line 3 

Row1text 

Line4 

Line5 

GeneratedText2.txt

,210

GeneratedText3.txt은

Excel에서 행이 많은 분들로
Line1 
Line2 

Line 3 

Row3text 

Line4 

Line5 

, 많은 텍스트 파일을 생성해야합니다. 새 파일의 이름도 어딘가에서 미리 정의해야합니다. 가장 좋은 방법은 무엇입니까? 어떤 명령 행이 도움이 될까요? 여기

는 지금까지 관리 한 것입니다 :

@echo off 

setlocal EnableDelayedExpansion 

set i=1 
for /f %%l in (input.cvs) do (
    >GeneratedText!i!.txt type template1.txt 
    >>GeneratedText!i!.txt echo %%l 
    set /a i+=1 
) 

endlocal 
+0

당신은 텍스트 파일 템플릿 말하는, 그래서 그들에 존재하는 어떤 변수 데이터를지지 않습니다. 파생 된 출력 파일의 이름은 어디에 있습니까? 그들은 Excel의 데이터 내용을 기반으로합니까? –

+0

원래 게시물을 편집하고 댓글에 코드를 포함하십시오. 각 행 앞에 4 개의 공백을 사용하여 코드로 형식을 지정하십시오. 감사합니다 –

+0

예, 템플릿의 값은 표준 값입니다. 지금은 이름에 대해 생각하지 않았습니다. (각 txt 파일의 이름을 따로 지정하는 두 번째 작업이 될 것입니다.) (출력 - template1의 내용과 엑셀 파일의 데이터를 여러 텍스트 파일로 복사 할 수 있습니다. 하지만 나는 template2 정보를 추가하는 방법에 관해서 붙어있다) – user391

답변

0

다음 코드는 사용자의 엑셀 시트에서 데이터를 두 개의 텍스트 템플릿 파일을 병합합니다. 셀 범위와 출력 파일의 이름을 지정하는 방법을 결정해야합니다.

Option Explicit 

Sub Create_Text_Files() 
Dim strLineIn As String 
Dim lRow  As Long 

    ' Determine Excel Range (Rows & Colums!! 
    For lRow = 2 To 5   '<<< Set your Range!! 
     Close #1 ' Just in case left open during testing 
     Close #2 
     Close #3 
     Open "C:\temp\TemplateFile1.txt" For Input As #1 
     Open "C:\temp\TemplateFile2.txt" For Input As #2 
     'Determine how to name your output files. 
     Open "C:\temp\TemplateOut" & lRow & ".txt" For Output As #3   ' Set Output File Name 

     'Write out TemplateFile1.txt 
     Do While Not EOF(1)   ' Loop until end of file 
      Line Input #1, strLineIn 
      If EOF(1) Then Exit Do  ' Avoid blank line 
      Print #3, strLineIn 
     Loop 
     Close #1 

     'Get your Excel data and write out 
     Print #3, Cells(lRow, 1)   ' Change if multi column 
     'Write out TemplateFile2.txt 
     Do While Not EOF(2)   ' Loop until end of file 
      Line Input #2, strLineIn 
      If EOF(2) Then Exit Do  ' Avoid blank line 
      Print #3, strLineIn 
     Loop 
     Close #2 
     Close #3 
    Next lRow 
End Sub 
0

이렇게하면 표시된 것처럼 두 템플릿 파일이있는 파일과 excel.txt 파일의 한 줄이 만들어야합니다.

파일 이름은 Excel에서 파생되었으며 독 문자가 없어야합니다.

이 안된 :

@echo off 
for /f "delims=" %%a in (excelfile.txt) do (
    type "template1.txt" >"%%a.txt" 
     >>"%%a.txt" echo(
     >>"%%a.txt" echo(%%a 
     >>"%%a.txt" echo(
    type "template2.txt" >>"%%a.txt" 
) 
관련 문제