【问题标题】:Create Folders By File Name With Delimiter通过带分隔符的文件名创建文件夹
【发布时间】:2015-11-01 19:08:04
【问题描述】:

我正在尝试修改 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 的帮助。

【问题讨论】:

    标签: file directory move


    【解决方案1】:

    我想通了。我刚刚将* 添加到MOVE "%filename%" ".\%dirname%\"

    让它MOVE "%filename%*" ".\%dirname%\"

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

    【讨论】:

      猜你喜欢
      • 2015-01-02
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多