command-line - 分解变量并将其部分保存在 Windows 命令行脚本中
问题描述
我需要在批处理脚本中提示三个变量:
set /p artist=Artist:
set /p album=Album:
set /p title=Title:
但是,变量%~1
等于<Artist> - <Album> - <Title>
有没有办法分解这个变量并得到零件?
解决方案
我能够弄清楚这一点,如果他们觉得有用,我会为其他人发布信息。
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
推荐阅读
- react-native - 我应该在 react-native/redux fetch 中使用什么而不是 Body.text() 来进行非 UTF-8 编码?
- ruby-on-rails - 从 CSV 行创建的散列不像普通散列那样表现
- c# - 使用 webforms C# 和 ajax 控制工具包的 Internet Explorer 11 上的冲突
- redirect - php 位置标头重定向即使在输出开始后仍然有效
- java - Java 访问者模式同时使用原始类型和类
- xml - 如果元素内容相同,XSLT 合并两个 XML 文件
- javascript - 如何为 js 捆绑应用提供配置?
- exception - 默认情况下,出站处理程序是否应该传递 ChannelPromise?
- python - 用科学计数法写 json float
- css - 使用 CSS 变换倾斜后应用于位置 div 的边距