Ответ Кимбо идеально подходит для обычных файлов.
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`