Muszę użyć skróconych nazw ścieżek dla aplikacji, której używam. Na przykład potrzebuję C:\PROGRA~1\
w przeciwieństwie do C:\Program Files
. Program nie obsługuje spacji i nie akceptuje ścieżek cytowanych (np "C:\Program Files"
.).
Jeśli to pomoże, korzystam z systemu Windows 7. W razie potrzeby mogę uzyskać dostęp do dowolnej wersji od XP.
/s
Przełącznik dokonuje rekursji podfolderówUtwórz plik nietoperza w wygodnym katalogu, a następnie możesz skopiować i wkleić krótką ścieżkę z tej ścieżki.
Możesz po prostu uruchomić
command.com
i wykonywaćcd
polecenia również w bieżącym katalogu.W skryptach wsadowych Windows
%~s1
rozszerza parametry ścieżki do krótkich nazw . Utwórz ten plik wsadowy:Zadzwoniłem do mojego
shortNamePath.cmd
i nazwał to tak:Oto wersja, która korzysta z bieżącego katalogu, jeśli nie podano parametru:
Wywoływany bez parametrów:
Używanie
SET
i nazwana zmiennaW wierszu polecenia systemu Windows istnieją pewne konwencje obsługi zmiennych ze spacjami w ich wartościach, które są nieco trudne do nauczenia się i zrozumienia, zwłaszcza jeśli masz uniksowe tło. Możesz to zrobić
( bez cudzysłowów ) lub
(zwróć uwagę na nieintuicyjne umieszczanie cytatów); następnie
źródło
Oto jeden liniowiec :
Podział :
cmd /c
- Uruchamia nową instancję interpretera poleceń systemu Windows, wykonuje polecenie określone przez ciąg znaków, a następnie kończy działaniefor %%parameter in (set) do
polecenie - warunkowo wykonaj polecenie kilka razy.echo
- Wyświetlaj komunikaty na ekranie.@
symbol jest taki sam, jakECHO OFF
zastosowany tylko do bieżącej linii.%~s
- Rozszerzona ścieżka zawiera tylko krótkie nazwy.Źródła :
źródło
cmd /c
? Jeśli jesteś w oknie wiersza polecenia, możesz po prostu wpisaćfor %A in ("C:\Program Files") do @echo %~sA
polecenie, a jeśli wpiszesz je w oknie dialogowym „Uruchom”, wynik zniknie, zanim będziesz mógł go przeczytać.cmd /c
kiedy biegniesz zcmd
; potrzebujesz go z programu PowerShell , ale musisz także'...'
zamknąć tokeny po/c
:cmd /c 'for %f in ("C:\Program Files") do @echo %~sf'
„Skrócona nazwa” jest tak naprawdę starą konwencją nazewnictwa DOS 8.3, więc wszystkie katalogi będą pierwszymi 6 literami, po których
~1
zakłada się, że istnieje tylko jedna nazwa pasująca, na przykład:tutaj jest jedyny wyjątek
źródło
Program Files
aProgram Files (x86)
jestPROGRA~1
i który jeden jestPROGRA~2
. Odpowiedź Paula rozwiązuje ten problem....~4
) zaczęło się od czegoś, co wygląda jak skrót, np.ABxxxx~1
Gdzie x był szesnastkowy - co nie jest bardzo łatwe do odczytania.ABCDEFGH-CAT
, otrzyma krótką nazwęABCDEF~1
. Jeśli następnie utworzęABCDEFGH-DOG
, otrzyma krótką nazwęABCDEF~2
. Gdybym wtedy usunąćABCDEFGH-CAT
,ABCDEFGH-DOG
wciąż ma krótką nazwęABCDEF~2
. Nie da się tego powiedzieć po prostu patrząc na długie nazwiska.~1
. Zobacz zasadę używaną przez system Windows do generowania krótkich nazw . Możesz także ustawić krótką nazwę ręczniefsutil
, aby te dwie nazwy nie miały żadnej relacji. Nie mówiąc już o twardych lub miękkich linkachZnalazłem bardzo przydatny sposób rozwiązania krótkiej ścieżki do bieżącego katalogu (lub czegokolwiek innego), jeśli masz zainstalowany PowerShell.
Wystarczy otworzyć PowerShell w aktualnym reż
w cmd windows typu powershell
jeśli masz folder otwarty w GUI, możesz wpisać cmd.exe lub powershell.exe bezpośrednio w pasku adresu folderu.
Następnie wydaj polecenie
Pochodzenie informacji: [ https://gallery.technet.microsoft.com/scriptcenter/Get-ShortName-90a49303]
źródło
Podobny do Iwana Schwartza odpowiedź , można zastąpić „C: \ Program Files” z
%cd%
, aby uzyskać bieżącego katalogu:źródło
Możesz też użyć tego niesamowitego narzędzia o nazwie PathCopyCopy
Za pomocą kilku kliknięć możesz uzyskać długą i krótką ścieżkę dosłownie dowolnego folderu z menu kontekstowego, np .:
Gotowy. Zostanie skopiowany do schowka.
zapowiedź
źródło
Zainstalowałem moduły węzłów, działając
npm install
na płycie kotła. Podczas próby usunięcia tych folderów system Windows nie pozwala nam ich usunąć, ponieważ ścieżka jest zbyt długa, aby można ją było obsłużyć.Po kilku płytkich badaniach pomyślałem, że słusznie byłoby, gdyby mój własny fragment kodu zmienił nazwy folderów z katalogu głównego na liść, aby w ten sposób zgłosić wyjątek dotyczący naruszenia.
Mi to pasuje. Poniżej znajduje się kod projektu C #.
źródło
Jest to najłatwiejszy sposób, jakiego użyłem, gdy mam do czynienia z plikami ze spacjami, i jest to również dostępne z Eksploratora plików, który ma te same uprawnienia dostępu.
źródło
Po prostu zamień spacje na
W ten sposób rzeczy są „tłumaczone”, a spacje przechodzą do% 20.
Jeśli naprawdę potrzebujesz, po prostu otwórz przeglądarkę i wpisz coś takiego
źródło
if exist C:\Program%20Files\ (echo exists)