Как мне разобрать имя файла на две части, разделенные дефисом?
Я бы хотел, чтобы оно выводилось в текстовый файл, содержащий:
Artist: Name of Artist
Song: Title of Song
Используйте следующий пакетный файл в качестве отправной точки:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=-" %%i in ('dir /b name*') do (
echo Artist: %%i
echo Song: %%j
)>>file.txt
endlocal
Пример использования:
> dir name*
Volume in drive F is Expansion
Volume Serial Number is 3656-BB63
Directory of F:\test
03/06/2018 14:06 0 Name of Artist - Title of Song.mp3
03/06/2018 14:07 0 Name of Artist 1 - Title of Song 1.mp3
2 File(s) 0 bytes
0 Dir(s) 1,269,011,574,784 bytes free
> test
> type file.txt
Artist: Name of Artist
Song: Title of Song.mp3
Artist: Name of Artist 1
Song: Title of Song 1.mp3
>
Я бы хотел, чтобы для каждого mp3-файла был один текстовый файл.,Возможно ли это?
Да Используйте следующий пакетный файл:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('dir /b name*.mp3') do (
set _filename=%%~dpna.txt
for /f "tokens=1,2 delims=-" %%i in ("%%a") do (
echo Artist: %%i
echo Song: %%j
)>!_filename!
)
endlocal
Пример использования:
> dir *.mp3
Volume in drive F is Expansion
Volume Serial Number is 3656-BB63
Directory of F:\test
03/06/2018 14:06 0 Name of Artist - Title of Song.mp3
03/06/2018 14:07 0 Name of Artist 1 - Title of Song 1.mp3
2 File(s) 0 bytes
0 Dir(s) 1,269,022,654,464 bytes free
> test
> type name*.txt
Name of Artist - Title of Song.txt
Artist: Name of Artist 1
Song: Title of Song 1.mp3
Name of Artist 1 - Title of Song 1.txt
Artist: Name of Artist 1
Song: Title of Song 1.mp3