我对你的知识水平印象深刻。
我的问题是:
我有一个包含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文件。
最诚挚的问候。 波尔多。
答案 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