将每个文件复制到每个文件夹

时间:2012-04-07 18:11:34

标签: windows batch-file

我对你的知识水平印象深刻。

我的问题是:

我有一个包含31个MP3文件的文件夹,一个月中每天一个。

我需要一个批处理来创建名为01 02 .... 31的文件夹并复制01.mp3 到01文件夹,02.mp3到02文件夹等等。 这可以在windows server 2k8 r2命令中使用吗?

我尝试使用以下内容:

FOR /F %%j in (filelist.txt) do (
FOR /F "tokens=1 delims=." %%i in (filelist.txt) do (
xcopy %%j e:\%%i\
))

还有很多其他人...... 但批处理创建了31个文件夹,每个文件夹上有31个MP3文件。

最诚挚的问候。           波尔多。

2 个答案:

答案 0 :(得分:2)

您有嵌套循环,每个循环遍历整个文件列表。这就是为什么你最终得到31个文件夹,每个文件夹包含31个文件。

相反,您应该只处理一次列表。试试这个:

FOR /F %%j IN (filelist.txt) DO XCOPY %%j E:\%%~nj\

~n修饰符会更改%%j的值,因此仅评估名称(01.mp3 - > 01)。

阅读FOR命令(FOR /?)的帮助以获取有关修饰符的更多信息。

答案 1 :(得分:0)

由于这是 google 上的第一个结果,Andriy 的示例不起作用。这是一个实际工作的结果

for /r "%CD%" %%f in (.) do (copy "filelist.txt" "%%~ff" > nul)

归功于extramaster