【发布时间】:2012-01-21 10:03:08
【问题描述】:
下面的代码运行良好,下面是它的功能列表:
- 它将基于前 4 个字符的文件移动到具有相同前 4 个字符的预先创建的文件夹中
-
如果文件夹不存在,则不会移动文件,因为没有相同的第4个字符的文件夹。
@echo on setlocal enabledelayedexpansion cls pushd R:\Contracts\Sites for /f "tokens=*" %%1 in ('dir /a-d /b *') do ( set filename=%%1&set dirname=!filename:~0,4! for /f "tokens=*" %%A in ('dir /ad /b') do ( set dirid=%%A & set dirid=!dirid:~0,4! if "!dirid!" equ "!dirname!" move %%1 %%A ) )
我想在这段代码中添加一个额外的功能。请看下面的例子。
我有 5 个文件
- X32A-test.docx 或 X32A-test.pptx(只会有一个 docx 或 pptx,“绝不会有两个同名”)
- X32A-test.pdf
- X32A-test.avi
- X32A-test-eng.sub
- X32A-test-small.jpg
如果文件夹不存在,我希望代码创建一个文件夹,如果它具有扩展名 docx 或 pptx,则基于文件名。
因此,对于上面的示例,它将创建一个名为:“X32A-test”的文件夹。然后名称前面带有“X32A”的所有其他文件将被移动到新创建的文件夹“X32A-test”中。
我希望它足够清楚。如果没有,请向我询问更多信息。
谢谢
【问题讨论】:
-
@Christian.K - 谢谢。我无法让它全部变成代码。
-
不用担心。只需将您想要的所有文本标记为代码并使用编辑器中的“{}”按钮(或将每个代码行缩进 4 个或更多空格)。
标签: batch-file directory