2010-06-05 72 views
1

我想让一个.bat复制&多次重命名一个文件。我想要列出名称和原始文件,然后我想复制该文件并将其重命名为列表中的每个名称。使用.bat文件语言复制和重命名文件?

我如何使用.bat文件做到这一点?

也有可能从复制/重命名的.bat到.rar或.zip每个文件运行winrar?

实施例:

$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个称为NAME1,NAME2 NAME3,nameetc文件(其是file.tmpl的副本)。

这个例子不是一个真正的编码语言,我使用了一种php sintax,因为我知道的语言更多。

+0

如果你有xargs,那会让你更容易。 – 2010-06-05 16:47:35

+0

我真的不明白你想要做什么。你能举个例子吗? – 2010-06-05 16:55:53

+0

我添加了一个例子。 我会使用xargs,但我赢了,是否可用于Windows? – flyout 2010-06-05 17:12:47

回答

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 2010-06-05 17:58:15