我想写2个批处理文件。
将子目录中的所有文件移动到root目录。 例如:
Folder1
|_folder2
|___files.jpg
|_folder3
|___files.jpg
我想将folder1文件夹中的所有文件移动到folder1
第二批文件是 例如:
Folder1
|_folder2
|___JPEG
|_____files.jpg
|_folder3
|___JPEG
|_____files.jpg
需要删除子目录中的所有文件,然后将文件从JPEG级别向上移动到例如文件夹2,并将其重命名为thumbnail.png。
我试过
for /r %%f in (*) do ren "%%f" thumbnail.jpg
重命名所有文件但不知道如何删除包含jpeg文件夹的同一文件夹中的所有文件以及如何将文件移动一级。
谢谢你:D希望它不复杂
答案 0 :(得分:1)
根据我的理解,这是第一个问题的解决方案:
@echo off
setlocal
set root=Folder1
for /f "delims=" %%f in ('dir /ad /b /s %root%') do @move "%%f\*.*" %root%
endlocal
正如我写的那样,任何级别的所有文件都会被移动。如果您只想移动第一级子目录文件,那么请删除/ s。
对于您的第二个问题,尝试类似的方法,但使用
dir /a-d /b
列出所有非子目录的条目(即跳过JPEG)。这将允许您构造执行删除的 for 语句,然后执行另一个执行移动和重命名的语句。
您可能希望查看调用子例程来执行移动,重命名,删除。然后,您可以操作文件名来更改名称。在第二种情况下,我对你想要做什么感到有点困惑。如果您不确定提取文件名和其他字符串操作,还可以查看 set 和调用命令的帮助。
如果您添加评论或编辑问题以准确显示您想要的内容,那么我很乐意为您提供帮助。