Вы можете извлечь файл в пустой каталог, где вы можете быть уверены, что это единственный существующий файл.Затем вы можете использовать инструкцию for, чтобы собрать такое имя в переменной и использовать его по своему усмотрению.
FOR /F "tokens=*" %%F IN ('dir /b *.sql') DO path_to_mysql\mysql < %%F
Обратите внимание, что если в архиве более одного файла SQL, все они будут обработаны,Я думаю, что это может быть бонусом, но это нежелательно, я думаю, вы могли бы просто выпрыгнуть из FOR
с GOTO
.
Редактировать : используя только /F
форму FOR
Я забыл, что "обычный" FOR
уже выполняет ту работу, которая нам нужна.
FOR %%F IN (*.sql) DO path_to_mysql\mysql < %%F
Обратите внимание, что все это работает, только если текущим каталогом является каталог извлечения, в противном случае необходимо соответствующим образом изменить выражения в скобках.
Бонусные ссылки: ссылка для <a href="http://ss64.com/nt/for2.html" rel="nofollow">FOR</a>
и <a href="http://ss64.com/nt/for_cmd.html" rel="nofollow">FOR /F</a>
- единственные команды, которые делают что-то полезное в пакетном режиме - и которые, очевидно, имеют невозможный синтаксис.: D