我试图修改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
到目前为止我的问题:
*.*
字符串没有用,所以我定义了每个扩展名非常感谢Ant的帮助。
答案 0 :(得分:0)
我明白了。我刚刚向*
MOVE "%filename%" ".\%dirname%\"
制作MOVE "%filename%*" ".\%dirname%\"
将集合文件移动到适当的目录。我仍然希望在FOR /f
中使用通配符,而不是定义每种类型的扩展名,但现在这样做。