Привет, я пытаюсь создать сценарий Windows для извлечения субтитров из всех файлов .mkv в каталоге, и я запускаю к проблеме.Команда Windows, работающая в cmd, но не в .bat-файле
Это мой сценарий:
dir /b | findstr .*".mkv"$ > tmpFile
for /f "tokens=*" %f in (tmpFile) do start mkvextract.exe tracks %f 2:%~nf.ass
del tmpFile
Проблема заключается в том, что, когда я уверен, выполнение его в cmd.exe все работает нормально, но когда я оберните его в BAT-файл только первая и третья строка может быть выполнена.
для линии говоря эту ошибку
C:\test>dir /b | findstr .*".mkv"$ 1>tmpFile
The following usage of the path operator in batch-parameter
substitution is invalid: %~nf.ass
For valid formats type CALL /? or FOR /?
The syntax of the command is incorrect.
C:\test>for /f "tokens=*" f 2:n (tmpFile) do start
mkvextract.exe tracks %f 2:%~nf.ass
Я пытался альтер сценарий, чтобы исправить ошибку, но единственное, что я достиг в том, что прекращают работу даже в командной строке. Пожалуйста помоги. :)
, что это идея «findstr. *». mkv «$'? – npocmaka
@npocmaka: Первый '. *' Является регулярным выражением для «любого символа нуля или более раз», '' .mkv '' является литералом «.mkv», а '' 'end - это регулярное выражение для «в конце строки»! – Aacini