【发布时间】:2023-10-02 17:44:02
【问题描述】:
我在一个目录中有数百个文件,它们都有不同的名称,但其中一些是相关的。
文件大多是.AI和PDF,都是这样的名字:
- FILE1_retail_xxx.ai
- FILE1_label_xxx.ai
- FILE2_retail_xxx.ai
- FILE2_label_xxx.ai
- FILE3_retail_xxx.ai
- FILE3_label_xxx.ai
我想要做的是有一个批处理文件为 FILE1、FILE2、FILE3 等创建目录,并将所有以 FILE1、FILE2、FILE3 等开头的文件移动到这些新创建的目录中。
我用过这个,但它只是为整个文件名创建了一个 DIR。
@echo off
for %%i in (*) do (
if not "%%~ni" == "organize" (
md "%%~ni" && move "%%~i" "%%~ni"
)
)
这不能满足我的需要,谁能帮我把它按摩成我需要的东西或者给我一个新的批处理文件来试试?
谢谢!这将为我节省无数小时的体力劳动!
【问题讨论】:
-
完全按照您的问题进行操作,
@For %%# In (1 2 3)Do @"%__AppDir__%Robocopy.exe" . FILE%%# FILE%%#_* /Mov>NUL。但是,我确信基于此您将修改或更好地澄清您的问题。 -
要按照我认为你想要的方式执行任务,
@For %%I In (*)Do @If /I Not "%%I"=="%~nx0" For /F "EOL=_Delims=_" %%# In ("%%~nxI")Do @"%__AppDir__%Robocopy.exe" . "%%#" "%%I" /XF *organize* /Mov>NUL,应该会让你更接近。这个单行批处理文件适用于当前目录中的所有文件,而不仅仅是包含下划线的文件。如果它对您的特定任务很重要,那么这应该足够简单。
标签: windows batch-file cmd