-2

我有问题 我有一些文件

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 直到37-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 等

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

谢谢

4

1 回答 1

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

必须奏效。如果两者都不起作用,请在命令提示符下运行它,以便您可以给我一条错误消息以供使用。莫娜

于 2013-09-25T06:36:34.400 回答