批处理,从特定多个文件创建特定文件夹,然后将特定多个文件移动到特定文件夹

时间:2013-09-25 03:04:01

标签: windows batch-file command

我有问题我有一些文件

07-01.jpg 07-02.jpg直到07-48.jpg

08-01.jpg 08-02.jpg直到08-48.jpg

...

37-01.jpg 37-02.jpg 37-03.jpg until37-48.jpg

我想创建文件夹07,08 ....,37然后将多个文件07-01.jpg,07-02.jpg,07-03.jpg移动到文件夹07中;

08-01.jpg,08-02.jpg,08-03.jpg到文件夹08;

...

37-01.jpg,37-02.jpg,37-03.jpg到文件夹37等

我可以获得任何批处理脚本来解决这个问题吗?

感谢

1 个答案:

答案 0 :(得分:0)

好的,首先你应该做更多的研究,我个人知道其他问题就是这个。其次,你还应该展示你到目前为止的精神,以便我们可以改进它。尝试这个解决方案,如果它不起作用,请将错误消息评论给我。

代码:

@echo off
setlocal enabledelayedexpansion
Rem dont include the last backslash below
set topath="C:\users\...[path to parent directory]"
pushd %topath%

for /r %%f in (*.jpg) do (
Rem Remove the below line and the correspoonding bracket to make this include sub directories
if !topath! equ "%%~ff" (
for /f "delims=_" %%n in ("%%~f") do (
if not exist %%n md %%n
move %%f %%n
)))

这应该可以正常工作,如果没有,我可以根据你给我的数字,用for /l循环手动制作另一个代码。

手动脚本

这是一个具体的解决方案:

@echo off
pushd D:\case

for /l %%a in (1,1,9) do (
md 0%%a
for /l %%b in (1,1,9) do (
if exist 0%%a_0%%b.jpg (
move 0%%a_0%%b.jpg 0%%a
)))

for /l %%a in (10,1,37) do (
md %%a
for /l %%b in (10,1,48) do (
if exist %%a_%%b.jpg (
move %%a_%%b.jpg %%a
)))
popd

有效。如果两者都不起作用,请在命令提示符下运行,这样您就可以给我一个错误消息。 莫纳