Відповідь Кімбо ідеально підходить для звичайних файлів.
for %I in (.) do echo %~sI
Імена файлів MsDos на HardLinks
Створені за допомогою жорстких посилань mklink /H <link> <target>
не матимуть короткого імені файлу MsDos.
У випадку, якщо ви dir /X
та ви виявите це відсутнє коротке ім’я, слід очікувати наступних дій:
d:\personal\photos-tofix\2013-proposed1-bad>dir /X
Volume in drive D has no label.
Volume Serial Number is 7C7E-04BA
Directory of d:\personal\photos-tofix\2013-proposed1-bad
03/02/2015 15:15 <DIR> .
03/02/2015 15:15 <DIR> ..
22/12/2013 12:10 1,948,654 2013-1~1.JPG 2013-12-22--12-10-42------Bulevardul-Petrochimiștilor.jpg
22/12/2013 12:10 1,899,739 2013-12-22--12-10-52------Bulevardul Petrochimiștilor.jpg
Звичайний файл
В цьому випадку
> for %I in ("2013-12-22--12-10-42------Bulevardul-Petrochimiștilor.jpg") do echo %~sI
Я отримав те, що очікував
d:\personal\PH124E~1\2013-P~3\2013-1~1.JPG
Файл жорсткого посилання
В цьому випадку
> for %I in ("2013-12-22--12-10-52------Bulevardul-Petrochimiștilor.jpg") do echo %~sI
У мене нормальний шлях MsDos, але звичайне ім'я файлу.
d:\personal\PH124E~1\2013-P~3\2013-12-22--12-10-52------Bulevardul-Petrochimiștilor.jpg`