일괄 처리로 텍스트 파일을 읽고 따옴표를 변수로 대체하여 새 파일로 만듭니다.

일괄 처리로 텍스트 파일을 읽고 따옴표를 변수로 대체하여 새 파일로 만듭니다.

내 데이터베이스에서 다음 형식으로 5개의 개별 .txt 파일에 저장한 고객 피자 목록이 있습니다.

Filename = 25Percent.TXT
"555-1211"
"555-1212"
"555-1223"

각 목록은 따옴표로 묶인 전화번호이며 각 목록의 길이는 다양합니다.

첫 번째 질문
5개 텍스트 파일의 각 인용문으로 바꾸고 싶은 두 세트의 변수가 있습니다.
두 변수는 다음과 같습니다.

Var A = < Discount Pizza price for phone number is "
Var B = " 25 % >

텍스트 파일의 각 줄을 읽고 다른 텍스트 파일에 다음 내용을 쓰고 따옴표를 변수로 바꾸는 배치 파일을 실행하고 싶습니다.

New Filename = 25Percentfinished.TXT
< Discount Pizza price for phone number is "555-1211" 25 % >
< Discount Pizza price for phone number is "555-1212" 25 % >
< Discount Pizza price for phone number is "555-1223" 25 % >

그런 다음 나는 반복 할 것입니다30퍼센트.txt,35퍼센트.txt,40퍼센트.txt그리고 마지막으로50퍼센트.txt파일.

두 번째 질문
또한 5개의 새 파일을 함께 추가하고 싶습니다.

답변1

간단한 루프입니다 for.

for /f "tokens=*" %%a in (25Percent.txt) do (
    echo ^< Discount Pizza price for phone number is %%a 25 %%% ^>>>25Percentfinished.txt
)

사용법을 참조하세요 for /?. 이는 파일을 한 줄씩 처리하여 해당 줄을 변수로 읽고 %%a수정된 줄을 다른 파일에 추가합니다. and <는 명령 프롬프트에서 특별한 의미를 갖기 때문에 (making and ) >로 이스케이프됩니다 . 이 역시 특수 문자이기 때문에 '이스케이프'되지만 다른 문자처럼 이스케이프할 수는 없습니다.^^<^>%%%%


다음과 같이 여러 텍스트 파일을 결합할 수 있습니다.

copy file1.txt + file2.txt + file3.txt destination.txt

또는 루프 type및 추가( >>)를 수행할 수 있습니다(이렇게 하면 현재 디렉터리의 모든 파일이 알파벳 오름차순으로 정렬되어 결합됩니다).

for %%a in (*.txt) do (
    type %%a>>destination.txt
)

답변2

OS를 지정하지 않으셨으므로 가능한 경우 작동할 수 있는 솔루션을 제공하겠습니다 sed.

$ sed -e 's/^\(.*\)$/< Discount Pizza price for phone number is \1 25 % >/' < 25Percent.TXT

관련 정보