Как в окне DOS получить полное имя DOS / короткое имя каталога, в котором я нахожусь?
Например, если я нахожусь в каталоге C:\Program Files\Java\jdk1.6.0_22
, я хочу отобразить его короткое имя C:\PROGRA~1\Java\JDK16~1.0_2
.
Я знаю, что запуск dir /x
даст мне короткие имена файлов / каталогов в текущем каталоге, но я не смог найти способ отобразить полный путь к текущему каталогу в формате короткого имени. Мне нужно проложить путь от корня, каталог за каталогом, работая dir /x
в каждом.
Я уверен, что есть способ сделать это попроще?
windows
command-line
CodeClimber
источник
источник
Ответы:
Есть способ попроще?
источник
for /d %I in (*) do @echo %~sI
Каждый отрезок пути короткий, отличный. Проблема была не непосредственно с длинными именами или даже с пробелами, хотя и была болью, но хуже всего было, когда присутствовали международные символы, которые просто наполняли мой скрипт, принимая этот список каталогов в качестве входных.%
знаков:for %%I in ("C:\folder with spaces") do echo %%~sI
Вы также можете ввести в окно CMD следующее:
Где
<ParentDirectory>
заменяется на полный путь к каталогу, содержащему элемент, для которого требуется имя.Хотя вывод не такой простой, как ответ Тимбо , он перечислит все элементы в указанном каталоге с фактическим именем и (если оно отличается) коротким именем.
Если вы все же используете,
for %I in (.) do echo %~sI
вы можете заменить.
полный путь к файлу / папке, чтобы получить короткое имя этого файла / папки (в противном случае возвращается короткое имя текущей папки).Проверено на Windows 7 x64.
источник
В пакетных сценариях Windows
%~s1
расширяет параметры пути до коротких имен . Создайте этот командный файл:Я позвонил в свой
shortNamePath.cmd
и назвал его так:Изменить: вот версия, которая использует текущий каталог, если не указан параметр:
Вызывается без параметров:
источник
%0
это путь к пакетному сценарию).Будучи программистом, сделал этот 10-минутный проект Winform. Для меня это было полезно. Добавление этого приложения в контекстное меню для файлового проводника сэкономит больше кликов.
Form1.cs:
Form1.Designer.cs:
источник
запустить
cmd.exe
и сделать следующее:Затем появится command.com и отобразит только короткие пути.
источник
источник
Ответ Кимбо идеально подходит для обычных файлов.
Для имен файлов MsDos на HardLinks
mklink /H <link> <target>
Жесткие ссылки, созданные с помощью , не будут иметь короткого имени файла MsDos.Если вы
dir /X
и вы обнаружите, что отсутствует короткое имя, вам следует ожидать следующего:Обычный файл
В таком случае
Я получил то, что ожидал
Файл жесткой ссылки
В таком случае
У меня обычный путь MsDos, но нормальное имя файла.
источник
похож на этот ответ, но использует подпрограмму
источник
Кто-то более прямой ответ - исправить ошибку.
% SPARK_HOME% \ bin \ spark-class2.cmd; Строка 54
Broken: set RUNNER="%JAVA_HOME%\bin\java"
Windows Style: set "RUNNER=%JAVA_HOME%\bin\java"
В противном случае RUNNER заканчивается кавычками, а команда
"%RUNNER%" -Xmx128m ...
заканчивается двойными кавычками. В результате программа и файл рассматриваются как отдельные параметры.источник
На основе ответа доктора Скрипто
источник
если через командный файл использовать:
вы можете использовать команду echo, чтобы проверить:
источник
используйте эту ссылку, она автоматически преобразует любой путь, который вы укажете, в любой формат https://pathconverter-pp.azurewebsites.net
источник