需要 .bat 根据文件名创建文件夹

需要 .bat 根据文件名创建文件夹

我需要 .bat 来根据文件名创建文件夹并将文件放入其中。我的名字格式如下:

string1 - string2 - string3 - string2 - string3_number.jpg

我找到了一个命令,它可以按照我的需要获取 3 个前字符串,但无法让它进一步工作。当我尝试将此命令放入 bat 时,它只会生成名为“--”的文件夹。

for /F "tokens=1,2,3 delims=-" %%a in ('dir /B /A-D') do (set string1=%%a&set string2=%%b&set string3=%%c
md "%string1%-%string2%-%string3%")

在 .bat 中将 @echo off 和 setlocal 放在这之前不起作用,有人可以帮忙纠正吗,这样它就会根据名称创建文件夹并放入文件。我阅读了这些帖子,但仍然无法创建文件夹:

答案1

因为延缓扩张设置时需要在(代码块)中使用 var 不起作用。

但是由于您没有改变根本不需要的变量。

@Echo off & Setlocal EnableDelayedExpansion

for /F "tokens=1,2,3 delims=-" %%a in ('dir /B /A-D') do (
  set "Folder=%%a-%%b-%%c"
  Rem to remove the trailing space from the Folder
  set "Folder=!Folder:~0,-1!"
  If not exist "!Folder!\" MD "!Folder!"
)

要移动文件也是错误的方法,您应该首先迭代文件,然后再像上面那样拆分它们。

相关内容