2010-06-05 5 views
1

Я хочу сделать .bat для копирования & переименовать файл несколько раз. Я хочу иметь список имен и оригинальный файл, затем я хочу скопировать этот файл и переименовать его для каждого имени в списке.Скопировать и переименовать файл с использованием .bat-файла?

Как я могу это сделать с использованием .bat-файла?

Также возможно запустить winrar из .bat в .rar или .zip каждый файл после копирования/переименования?

Пример:

$file = "file.tmpl"; 
$names = "name1, name2, name3, nameetc"; 
foreach($names as $name) { 
    copy $file; //to avoid deleting the original 
    rename $file to $name; 
    zip $name; //I dont really need this but if its easy to do i will like to use it 
} 

Так я начинаю с file.tmpl и я в конечном итоге с еще 4 файлов (которые являются дубликатом file.tmpl) под названием name1, name2, name3, nameetc.

Пример не настоящий кодирующий язык, я использовал своего рода php sintax, потому что язык, который я знаю больше.

+0

Если у вас есть xargs, это сделает вас намного проще. –

+0

Я действительно не понимаю, что вы хотите сделать. Можете ли вы привести пример? –

+0

Я добавил пример. Я бы использовал xargs, но я нахожусь на выигрыше, он доступен для окон? – flyout

ответ

3

Должны ли имена файлов быть в списке строк?

Если вы можете назвать их в отдельный файл, например так,

name-one.pdf 
name-two.pdf 
name-three.pdf 

этот пакетный файл будет работать

SET source_file=%1 
SET name_list_file=%2 

FOR /F "usebackq delims=," %%G IN (`TYPE %name_list_file%`) DO (
    COPY %source_file% %%G 
) 

Вы назвали бы это так

batch-file-name source-file-name name-list-file 

Другими словами, я назвал командный файл make-copies.bat, а файл имени filenames.txt, и я использовал его для копирования файла с именем mla-play.pdf.

make-copies mla-play.pdf filenames.txt 

Это также позволяет вам изменить список имен целей без изменения командного файла.

Надеюсь, это поможет.

+1

Спасибо, что получить имена из txt еще лучше. – flyout