我有一长串单独的歌曲,不在文件夹中,只是歌曲,我想将它们移动到他们的艺术家的文件夹中。歌曲格式如下
艺术家 - 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/