首页 > 解决方案 > 分解变量并将其部分保存在 Windows 命令行脚本中

问题描述

我需要在批处理脚本中提示三个变量:

set /p artist=Artist:
set /p album=Album:
set /p title=Title:

但是,变量%~1等于<Artist> - <Album> - <Title>

有没有办法分解这个变量并得到零件?

标签: command-line

解决方案


我能够弄清楚这一点,如果他们觉得有用,我会为其他人发布信息。

REM Remove extension and full path
SET file=%~1
SET file=%file:.mp3=%
For %%A in ("%file%") do (SET file=%%~nxA)

REM : Get artist, album, and title from filename
REM : Only one character deliminator can be used, so replace " - " to "*" first
SET ftemp=%file: - =*%
for /f "tokens=1,2,3,4 delims=*" %%a in ("%ftemp%") do set artist=%%a&set title=%%b&set key=%%c&set ref=%%d

推荐阅读