使用分隔符

时间:2015-11-01 19:08:04

标签: file directory move

我试图修改Magoo发布的脚本,根据文件名创建文件夹,并将相关文件移动到这些目录。每个实例有2-4个文件,名称相同但扩展名不同。名称用 - (连字符)分隔。这些是音乐文件,因此会有多个集合应该移动到标题文件夹中,以反映分隔符之前的所有内容。

@ECHO OFF
SETLOCAL
SET "sourcedir=F:\Test"
PUSHD "%sourcedir%"
FOR /f "delims=-" %%a IN (
  'dir /b /a-d *.mp3 *.cdg *.PLX '
  ) DO (
 SET "filename=%%a"
 SET "dirname=%%a"
 CALL :genmove
)
popd

GOTO :EOF

:genmove
IF "%dirname:~-1%" neq " " set "dirname=%dirname:~0,-1%"&goto genmove
set "dirname=%dirname:~0,-1%"
    MD "%dirname%"
    MOVE "%filename%" ".\%dirname%\"
GOTO :eof

到目前为止我的问题:

  • 如果我定义分隔符,则会正确创建文件夹但是 文件没有移动。
  • 如果我删除了分隔符,则会移动文件 但是每个集合都会移动到整个文件的唯一文件夹中 名称
  • 在" dir"中使用*.*字符串没有用,所以我定义了每个扩展名

非常感谢Ant的帮助。

1 个答案:

答案 0 :(得分:0)

我明白了。我刚刚向*

添加了MOVE "%filename%" ".\%dirname%\"

制作MOVE "%filename%*" ".\%dirname%\"

将集合文件移动到适当的目录。我仍然希望在FOR /f中使用通配符,而不是定义每种类型的扩展名,但现在这样做。