Следующий однострочный пакетный файл откроет последний измененный файл:
for /f "usebackq delims=" %%i in (`dir /b /o-d`) do @start "%%i"&goto :eof
Использование dir
мне кажется гораздо проще, чем пытаться разобрать дату в имени файла. Вы также можете упорядочить по имени файла (поскольку формат даты в некоторой степени соответствует ISO-8601).
goto :eof
только для того, чтобы быть уверенным, что будет открыт только самый последний файл, а не все в порядке даты / времени.
Что касается вашей проблемы с пространством, то, как правило, это следует исправить, заключив в кавычки имя файла, но иногда бывает немного трудно понять, где они должны быть. Кроме того, for
по умолчанию токенизирует входные данные в пробелах, поэтому я включил туда delims=
, который по существу говорит: «Поместите все в переменную и не делайте никаких токенизаций».