batch-file - 按批处理订购文件列表

标签 batch-file split

我有一长串单独的歌曲,不在文件夹中,只是歌曲,我想将它们移动到他们的艺术家的文件夹中。歌曲格式如下

艺术家 - songname.flac

我可以将它们存储在一个列表中,然后回显它,但是将艺术家和歌曲名称分成 2 个变量,我似乎无法弄清楚。

有人可以帮我拆分吗(或者如果你想要脚本的其余部分)

这是我目前所拥有的:

@echo off
setlocal enabledelayedexpansion
set N=0
for %%i in (*) do (
    set Files[!N!]=%%~ni
    set /a N+=1

)
for /l %%x in (1,1,%N%) do echo.!Files[%%x]!

pause

最佳答案

set SOURCE=c:\temp\test
for /f "delims=-. tokens=1,2" %%i in ('dir /b "%SOURCE%\*.flac"') do echo Artist : %%i  Song : %%j

完整脚本的更新(必须检查它是否适用于路径中的空格和特殊字符):

@echo off
setlocal enabledelayedexpansion
set SOURCE=c:\temp\test
set DESTINATION=c:\temp\test

for /f "tokens=*" %%i in ('dir /b "%SOURCE%\*.flac"') do call :OrderThatMess "%%i"

:OrderThatMess

set NAME=%1
for /f "tokens=1,2 delims=-. " %%j in (%1) do (
    set ARTIST=%%j
    set TITLE=%%k
    if not exist "%DESTINATION%\%ARTIST%" (md "%DESTINATION%\%ARTIST%" )
    copy %SOURCE%\%NAME% "%DESTINATION%\%ARTIST%\%TITLE%.flac"
    )

关于batch-file - 按批处理订购文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17176472/

相关文章:

batch-file - 测试批处理文件中的文件属性

linux - 是否可以对 STDOUT 进行分页?

python - 为什么 split() 在同一字符串上返回的元素多于 split ("")?

Windows 批处理文件 'del' 不工作

batch-file - Windows - 列出文件夹中的所有非空目录并写入文件

windows - cmd for 循环转义?在集合中?

java - 正则表达式匹配;但不是\;

javascript - RegExp/JavaScript : Split string on multiple characters, 保留分隔符而不使用lookbehind

c - C 中使用分隔符分割字符串

Powershell ps1脚本运行bat文件但执行后CMD屏幕关闭