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


2

我需要.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%")

把@echo关闭和setlocal之前在.bat不工作可以有人帮助使它正确,所以它将根据名称和文件放入文件夹。我读了这些帖子,但仍然甚至无法制作文件夹:

Answers:


3

因为在(代码块)中设置使用var 时需要delayedexpansion,所以它不起作用。

但是因为你没有改变根本不需要的变量。

@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!"
)

要移动错误方法的文件,您应该首先迭代文件,然后按照上面的方式拆分它们。


干得好@LotPings。1999年推出......我从未知道延迟扩展。
艾伦杰克逊
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.