W oknie DOS, jak mogę uzyskać pełną nazwę DOS / skróconą nazwę katalogu, w którym się znajduję?
Na przykład, jeśli jestem w katalogu C:\Program Files\Java\jdk1.6.0_22
, chcę wyświetlić jego krótką nazwę C:\PROGRA~1\Java\JDK16~1.0_2
.
Wiem, że uruchomienie dir /x
da mi krótkie nazwy plików / katalogów w bieżącym katalogu, ale nie byłem w stanie znaleźć sposobu, aby wyświetlić pełną ścieżkę bieżącego katalogu w formacie krótkiej nazwy. Muszę przedrzeć się przez ścieżkę od katalogu głównego, katalog po katalogu, działając dir /x
w każdym z nich.
Jestem pewien, że istnieje łatwiejszy sposób na zrobienie tego?
windows
command-line
CodeClimber
źródło
źródło
Odpowiedzi:
Jakiś prostszy sposób?
źródło
for /d %I in (*) do @echo %~sI
każdy odcinek ścieżki jest krótki, świetny. Problem nie dotyczył bezpośrednio długich nazw ani nawet spacji, chociaż były uciążliwe, ale najgorsze jest, gdy obecne są znaki międzynarodowe, które po prostu łączą mój skrypt, biorąc tę listę katalogów jako dane wejściowe.%
znakami:for %%I in ("C:\folder with spaces") do echo %%~sI
Możesz także wprowadzić następujące informacje w oknie CMD:
Gdzie
<ParentDirectory>
jest zastępowane pełną ścieżką do katalogu zawierającego element, którego nazwę chcesz nadać.Chociaż wynik nie jest tak prosty, jak odpowiedź Timbo , wyświetli listę wszystkich elementów w określonym katalogu z rzeczywistą nazwą i (jeśli jest inna) krótką nazwą.
Jeśli używasz
for %I in (.) do echo %~sI
, możesz zastąpić nazwę.
pełną ścieżką do pliku / folderu, aby uzyskać krótką nazwę tego pliku / folderu (w przeciwnym razie zwracana jest krótka nazwa bieżącego folderu).Przetestowano w systemie Windows 7 x64.
źródło
W skryptach wsadowych systemu Windows
%~s1
rozszerza parametry ścieżki do krótkich nazw . Utwórz ten plik wsadowy:Zadzwoniłem do mnie
shortNamePath.cmd
i tak to nazywam:Edycja: oto wersja, która używa bieżącego katalogu, jeśli nie podano żadnego parametru:
Wywołane bez parametrów:
źródło
%0
jest to ścieżka do skryptu wsadowego).Będąc programistą wykonałem ten 10-minutowy projekt Winform. To mi się przydało. Przekształcenie tej aplikacji w menu kontekstowe eksploratora plików pozwoliłoby zaoszczędzić więcej kliknięć.
Form1.cs:
Form1.Designer.cs:
źródło
uruchom
cmd.exe
i wykonaj następujące czynności:Wtedy command.com pojawi się i wyświetli tylko krótkie ścieżki.
źródło
źródło
Odpowiedź Kimbo jest idealna dla zwykłych plików.
Dla nazw plików MsDos na HardLinks
Twarde łącza utworzone za pomocą
mklink /H <link> <target>
nie będą miały krótkiej nazwy pliku MsDos.Jeśli ty
dir /X
i ty odkryjesz brakującą krótką nazwę, powinieneś spodziewać się następujących rzeczy:Normalny plik
W tym przypadku
Mam to, czego się spodziewałem
Plik łącza twardego
W tym przypadku
Mam normalną ścieżkę MsDos, ale normalną nazwę pliku.
źródło
podobny do tej odpowiedzi, ale używa podprogramu
źródło
Bardziej bezpośrednią odpowiedzią jest naprawienie błędu.
% SPARK_HOME% \ bin \ spark-class2.cmd; Wiersz 54
Broken: set RUNNER="%JAVA_HOME%\bin\java"
Windows Style: set "RUNNER=%JAVA_HOME%\bin\java"
W przeciwnym razie RUNNER kończy się cudzysłowami, a polecenie
"%RUNNER%" -Xmx128m ...
cudzysłowami. W rezultacie Program i Plik są traktowane jako oddzielne parametry.źródło
Zainspirowany odpowiedzią dr Scripto
źródło
jeśli za pośrednictwem pliku wsadowego użyj:
możesz użyć polecenia echo, aby sprawdzić:
źródło
użyj tego linku, automatycznie przekonwertuje każdą podaną ścieżkę na dowolny format https://pathconverter-pp.azurewebsites.net
źródło