1

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

我的问题是:

我有一个包含 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 文件。

此致。莱奥波尔多。

4

2 回答 2

2

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

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

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

修饰符更改了的~n值,%%j因此它仅计算为名称(01.mp3-> 01)。

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

于 2012-04-07T20:58:06.180 回答
0

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

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

归功于extramaster

于 2021-07-11T22:10:26.320 回答