一个文件夹下有很多文件,其中有些文件文件名相同,但是后缀名不同,还有一些文件只有单独的一个后缀名

2024-12-14 05:39:03
推荐回答(4个)
回答1:

这个可以,但实在是很麻烦,要在批处理里面分析和处理字符串是件很让人头疼的事.给个思路你自己研究吧.
用FOR /R循环枚举指定目录的*.*文件
将取到的文件名存入一个变量nm(不带扩展名的,需要将字符串拆分).
用下一个文件名和这个变量文件名(都是不带扩展名的)对比,如果相同,
MOVE "%%nm.*" "目标位置"
再修改nm变量的值为下一个文件名
可能出问题的部分在于FOR /R返回结果是否按文件名排序,我在我电脑上简单试了下,应该是排序的.

回答2:

如果自己指定文件名,还是可以做到的

copy 指定文件名.* d:\

回答3:

假设原文件夹为g:\test,目标文件夹为g:\bat,本批处理
将会把g:\test文件夹下(包括子目录)所有同名不同后缀的文件拷贝到g:\bat目录下
且按照不同名字建立相应的文件夹,同名文件就放在对应名称的文件夹内

代码如下:

set SrcFolder=g:\test

set DesFolder=g:\bat

for /f "delims=" %%a in ('dir "%SrcFolder%\*.*" /a-d /b /s') do (
md "%DesFolder%\%%~na" 2>nul
xcopy /y "%%a" "%DesFolder%\%%~na" 2>nul
)

回答4:

这个不好弄。!