2013-04-22 5 views
-1

Я новичок в пакетных файлах, и мне нужна помощь.Пакет: создать цикл из списка имен файлов

У меня есть файл со списком имен файлов: file_list.txt -> Содержание: "file1.ppt, file2.ppt, file3.ppt"

Один файл с текстом: текст .txt -> содержание: «открытым хххх и сохранить как PDF»

мне нужно сделать создать новый текстовый файл (run.txt), который будет выглядеть так:

открытого file1.ppt и сохранить как PDF

открытого file2.ppt и сохранить как PDF

открытого file3.ppt и сохранить как PDF

Я Заглядывая в "для" команды, но я явно не знаю, с чего начать

FOR/F "токенов = *" %% A IN (file_list.txt) DO ( ECHO %%

+1

Содержимое 'file_list.txt' в одной строке? – Endoro

+0

Нет, это был всего лишь пример, текст имеет 6 строк, но только одну строку. –

ответ

0
@echo off 
setlocal EnableDelayedExpansion 
set replace=xxxx 
set /P text=< text.txt 
(for /F %%a in (file_list.txt) do (
    echo !text:%replace%=%%a! 
)) > run.txt 

Просто поместите в replace переменную строку, которая должна быть заменена на имя файла.

+0

Отлично !!! Это сработало. Это то, что я искал. Спасибо за вашу ценную помощь. –

0

Помогает ли это решить вашу задачу?

@echo off 
for /f "delims=" %%a in (file_list.txt) do (
>>run.txt echo open %%a and save as pdf 
) 
+0

Нет, текст «open xxxx и save as pdf» - это просто простой пример, у меня есть разные файлы с несколькими строками текста. Я должен также определить этот текст как строку. –

+0

Итак, откуда вы знаете, в какой части строки должны быть заменены имена файлов? – Aacini

+0

@Jose Costa: Как насчет того, чтобы вы изменили свой вопрос и сказали нам, что вы действительно хотите. – foxidrive